0

我的业力覆盖率报告显示覆盖了局部变量。这是可能的还是它的karma-coverage报告问题。

请查看 Angular 控制器代码。

'use strict';

angular.module('moduleName')
    .controller('FormController', [ '$log',
        function FormController($log) {

            // Controller Local Variables.
            var that = this;

            that.hideLoader = function () {
                that.isLoading = false;
            };

        }
]);

在此处输入图像描述

我的问题:是否可以涵盖局部变量和函数参数条件。例如下面。

that.hideLoader = function (userObj) {
   var id = userObj.id;

   if(id) {
     that.isLoading = false;
   }
   else {
     that.isError = true;
   }
};

在上面的示例中,我已将用户对象 id 属性声明为局部id变量。现在很难覆盖代码。在这种情况下,茉莉花建议减少局部变量或其业力覆盖报告建议?

4

1 回答 1

0

我的业力覆盖率报告想要覆盖局部变量。这是可能的还是它的业力覆盖报告问题。

覆盖率工具通过检查您的测试是否覆盖了每一行代码来正常工作。这就是代码覆盖率的定义。

另一方面:

var that = this;
that.hideLoader = function() { that.isLoading = false};

不是局部变量。正如定义的那样,它们是控制器的属性。注意事项:请使用"use strict"并且不要使用未声明的属性,例如that.isLoading. 即使语言允许,它也不是很可读,而且是不好的做法。

另外,在提问时,请粘贴代码而不是代码的图像。

更新

你的问题的答案是肯定的。Karma-coverage 报告每行代码触及(绿色)或未触及(红色)。

于 2016-08-02T14:44:05.027 回答