我有一个覆盖指令单元测试的问题。我使用的方式来自: http://blog.revolunet.com/blog/2013/12/05/unit-testing-angularjs-directive/(作者Julien Bouquillon) 为我的指令创建单元测试。该博客上提出的想法看起来非常符合我的需求并得到了很好的解释,但我的问题是,报道并未反映在Karma Coverage(伊斯坦布尔代码覆盖率工具)中。
如何创建指令单元测试以反映在覆盖率摘要中?有人做一个让它成为可能的例子吗?
答案 0 :(得分:2)
为什么你没有看到指令代码的覆盖范围的原因是,你提到的链接使用了$ compile()和通过compileDirective()函数在beforeEach()中调用的$ digest()。
将那段代码移动到it()
中的那些代码(将其转入compileDirective),它应该在指令上完成覆盖。
而不是
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
});
基本上你可能需要对你的代码做一些调整。
答案 1 :(得分:0)
我在Grunt配置文件中发现了一些问题,这就是覆盖范围未更新的原因。因此,Julien Bouquillon的例子非常好,我推荐它。