用 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的主要内容,如果未能解决你的问题,请参考以下文章