我在涉及指令单元测试时遇到问题。我使用以下方式: http : //blog.revolunet.com/blog/2013/12/05/unit-testing-angularjs-directive/(由 Julien Bouquillon 编写)为我的指令创建单元测试。该博客上提出的想法看起来非常适合我的需求并且得到了很好的解释,但我的问题是覆盖率没有反映在 Karma Coverage(伊斯坦布尔代码覆盖率工具)中。
我应该如何创建指令单元测试以反映在覆盖率摘要中?有人可以举个例子吗?
我在涉及指令单元测试时遇到问题。我使用以下方式: http : //blog.revolunet.com/blog/2013/12/05/unit-testing-angularjs-directive/(由 Julien Bouquillon 编写)为我的指令创建单元测试。该博客上提出的想法看起来非常适合我的需求并且得到了很好的解释,但我的问题是覆盖率没有反映在 Karma Coverage(伊斯坦布尔代码覆盖率工具)中。
我应该如何创建指令单元测试以反映在覆盖率摘要中?有人可以举个例子吗?
您看不到指令代码覆盖率的原因是,您提到的链接使用了 $compile() 和 beforeEach() 通过 compileDirective() 函数调用的 $digest() 。
将那段代码(进入 compileDirective 的代码)移到您it()的 .
代替
describe("do some directive testing",function(){
beforeEach(function(){
compileDirective();
});
it('your test code',function(){
//some code here
});
请执行下列操作。
describe("do some directive testing",function(){
beforeEach(function(){
// some other code which execute before each of the it()..
});
it('your test code',function(){
compileDirective();
//some code here
});
所以基本上你可能需要对你的代码做一些调整。
我在我的 Grunt 配置文件中发现了一些问题,这就是为什么没有更新覆盖范围的原因。所以,Julien Bouquillon 的例子非常好,我推荐它。