【问题标题】:Write TDD in angularjs karma and jasmine用 angularjs karma 和 jasmine 编写 TDD
【发布时间】: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()
        });

它没有显示任何错误并且测试用例成功运行,但是在代码覆盖率中它显示为红色,这意味着您的代码没有被覆盖

【问题讨论】:

    标签: angularjs unit-testing tdd karma-jasmine karma-coverage


    【解决方案1】:

    您没有任何expects,所以也许这就是您的代码覆盖率没有增加的原因。 你应该有这样的东西:

    expect(scope.customFilters.statusArray).toBe([{value: "Active"}]);

    【讨论】:

      猜你喜欢
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多