用 angularjs karma 和 jasmine 编写 TDD
Posted
技术标签:
【中文标题】用 angularjs karma 和 jasmine 编写 TDD【英文标题】:Write TDD in angularjs karma and jasmine 【发布时间】:2017-04-28 12:08:34 【问题描述】:我正在使用 karma 和 jasmine 编写我的应用程序的测试用例。我是单元测试的新手。这是我的代码:
$scope.$watch('filterParams.statusModel', function()
$scope.customFilters.statusArray = customFilters.statusArray.filter(function(_i)
var _x = $scope.filterParams.statusModel.toLowerCase();
if (_i.value.toLowerCase().indexOf(_x) !== -1)
return true;
return false
)
);
测试用例是:
it('\n Watch function fire continously', function ()
scope.customFilters =
statusArray: [value:'Active',value:'InActive'],
status:['active':true,'InActive':true]
scope.filterParams = ;
scope.filterParams.statusModel = 'Active'
scope.$apply()
scope.filterParams.statusModel = 'InActive'
scope.$apply()
);
它没有显示任何错误并且测试用例成功运行,但是在代码覆盖率中它显示为红色,这意味着您的代码没有被覆盖
【问题讨论】:
【参考方案1】:您没有任何expects
,所以也许这就是您的代码覆盖率没有增加的原因。
你应该有这样的东西:
expect(scope.customFilters.statusArray).toBe([value: "Active"]);
【讨论】:
以上是关于用 angularjs karma 和 jasmine 编写 TDD的主要内容,如果未能解决你的问题,请参考以下文章
Karma + Jasmine 下 angular.mock.inject 的 TypeScript AngularJS 控制器测试问题
Angularjs 基于karma和jasmine的单元测试
茉莉花匹配器功能未在 angularjs/karma 单元测试中加载
在Visual Studio 2013中使用Jasmine + Karma进行AngularJS测试