没有任何测试,路由的代码覆盖率为100%

时间:2013-06-18 08:13:17

标签: unit-testing angularjs istanbul

我正在为一个简单的AngularJS项目编写测试,并使用Istanbul来计算代码覆盖率。根据伊斯坦布尔的说法,我有一个100%代码覆盖率的文件,但我没有任何测试:

'use strict';

define(['app'],function(app) {
  app.config(['$routeProvider',function ($routeProvider) {
    $routeProvider
      .when('/', {
      templateUrl: 'views/main.html',
        controller: 'MainController'
      })
      .otherwise({
        redirectTo: '/'
      });
  }]);
});

伊斯坦布尔的统计数据是:

Statements: 100% (4 / 4)      
Branches: 100% (0 / 0)      
Functions: 100% (2 / 2)      
Lines: 100% (4 / 4)     

并且整个HTML报告页面都是“绿色”,表示代码覆盖率很好。

为什么会这样?有什么事要做吗? (这在伊斯坦布尔是一个问题吗?)

1 个答案:

答案 0 :(得分:3)

代码覆盖率仅显示JavaScript执行是否已到达这些行,而不是是否有专门为其分配的任何测试。

很可能Angular在执行测试期间正常读取路由配置,因此文件中的所有内容都标记为已覆盖。

这也是一个很好的提醒,100%的代码覆盖率并不意味着100%的功能覆盖率。