html 中单元测试,单元测试 – 单位测试$sce.trustAsHtml的输出

我在Angular写一个REST应用程序,我想为它编写单元测试(当然!)。我有一个控制器,从json的REST服务中获取博客帖子列表,并将摘要放入$ scope中,因此我可以在视图中显示它们。

起初,博客文章刚刚显示为文本,即< p>博客正文< / p>,而不是渲染为解析的HTML,直到我发现您可以使用ng-bind-html与$sce service结合使用。正确显示博文。

单元测试时出现问题。我试图用一些HTML模拟一个json响应,然后测试我的控制器正确处理HTML。这是我的代码:

调节器

.controller( 'HomeCtrl', function HomeController( $scope, $http, $sce ) {

$scope.posts = {};

$http.get('../drupal/node.json').success(function (data) {

var posts;

posts = data.list;

for(var i = 0; i < posts.length; i ++) {

posts[i].previewText = $sce.trustAsHtml(posts[i].body.summary);

posts[i].created = posts[i].created + '000'; // add milliseconds so it can be properly formatted

}

$scope.posts = posts;

});

})

单元测试

describe('HomeCtrl', function() {

var $httpBackend, $rootScope, $sce, createController;

beforeEach(inject(function ($injector) {

// Set up the mock http service responses

$httpBackend = $injector.get('$httpBackend');

// Get hold of a scope (i.e. the root scope)

$rootScope = $injector.get('$rootScope');

// The $controller service is used to create instances of controllers

var $controller = $injector.get('$controller');

$sce = $injector.get('$sce');

createController = function() {

return $controller('HomeCtrl', {

'$scope': $rootScope

});

};

}));

it('should get a list of blog posts', function() {

var rawResponse = {

"list": [

{

"body": {

"value": "\u003Cp\u003EPost body.\u003C\/p\u003E\n",

"summary": "\u003Cp\u003ESummary.\u003C\/p\u003E\n"

},

"created": "1388415860"

}

]};

var processedResponse = [{

"body": {

"value": "\u003Cp\u003EPost body.\u003C\/p\u003E\n",

"summary": "\u003Cp\u003ESummary.\u003C\/p\u003E\n"

},

"created": "1388415860000",

previewText: $sce.trustAsHtml("\u003Cp\u003ESummary.\u003C\/p\u003E\n")

}];

$httpBackend.when('GET', '../drupal/node.json').respond(rawResponse);

$httpBackend.expectGET("../drupal/node.json").respond(rawResponse);

var homeCtrl = createController();

expect(homeCtrl).toBeTruthy();

$httpBackend.flush();

expect($rootScope.posts).toEqual(processedResponse);

});

});

当我通过Karma测试赛跑者运行上述时,我得到以下回应:

Chrome 31.0.1650 (Windows) home section HomeCtrl should get a list of blog posts FAILED

Expected [ { body : { value : '

Post body.

', summary : '

Summary.

' }, created : '1388415860000', previewText : { $$unwrapTrustedValue : Function } } ] to equal [ { body

: { value : '

Post body.

', summary : '

Summary.

' }, created : '1388415860000', previewText : { $$unwrapTrustedValue : Function } } ].

我怀疑这个问题是由于$ sce.trustAsHtml返回一个包含一个函数的对象,而不是一个字符串。

我的问题是,首先我正是以正确的方式来解决这个问题?

其次,如果是这样,我该怎么去测试$ sce.trustAsHtml的输出呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sce业务功能开发详解.rar是一个压缩文件,文件大小为3.64MB。这个压缩文件主要是用来存放和传输sce业务功能开发的相关内容。SCE是Supply Chain Execution的缩写,代表供应链执行。供应链执行涵盖了供应链各个环节的物流、仓储、配送等活动,通过优化供应链执行过程,提高效率、降低成本、提升客户满意度。 在这个压缩文件,可能包括了sce业务功能开发的文档、源代码、测试数据等内容。这些内容可以帮助开发人员了解、实现和测试sce业务功能。 sce业务功能开发的详解将涵盖各个方面,包括需求分析、设计、编码、测试等环节。在需求分析阶段,开发人员将与用户和相关利益相关者沟通,详细了解他们的需求和期望。在设计阶段,开发人员将根据需求分析的结果,设计出合适的系统架构和模块划分。在编码阶段,开发人员将根据设计文档,使用适当的编程语言和工具,编写出可执行的代码。在测试阶段,开发人员将对代码进行单元测试和集成测试,确保其正确性和稳定性。 sce业务功能开发的目标是实现供应链执行的各个功能模块,并保证其高效、稳定和可靠。通过sce业务功能开发,可以帮助企业优化供应链执行过程,提高物流配送的效率,降低成本,提升客户满意度。这对于提高企业竞争力和市场份额具有重要意义。 总之,sce业务功能开发详解.rar是一个存放和传输sce业务功能开发相关内容的压缩文件,其包含了需求分析、设计、编码、测试等各个环节的文档和代码,帮助开发人员实现和优化供应链执行的功能模块。这对于企业提高供应链执行效率和客户满意度具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值