我正在研究一个测试框架。为了断言两个函数相等,我正在使用:
var a = function(){ return 5; };
var b = function(){ return 5; };
var areEqual = (a.toString() == b.toString());
我正在使用 karma 运行一些测试,一切都很好,直到我添加了带有 karma-coverage 报告的测试覆盖率报告。上面的断言失败了,因为 Istanbul 尔似乎在两个函数中添加了代码。
a.toString()
看起来像:
function () {
__cov_Mgz6NtZP5n6U6J27W7D4rA.f['33']++;
__cov_Mgz6NtZP5n6U6J27W7D4rA.s['152']++;
return 5;
}
我试过:
/* istanbul ignore next */
var a = function(){ return 5; };
/* istanbul ignore next */
var b = function(){ return 5; };
但是好像不行。您知道我该如何解决这个问题吗?
最佳答案
到目前为止,最好的选择是将您的覆盖范围分离到另一个 karma 配置中。您将能够同时运行这两个,例如
grunt karma :单位
和
grunt karma:coverage
并且在单元上代码不会被混淆
关于javascript - 代码覆盖率报告破坏了函数相等断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30470796/