2017-06-15 27 views
0

我正在测试一个指令的角度和代码覆盖的目的我需要进入该函数传递给第二个参数的删除功能:是否有可能测试一个函数的内容是一个间谍的参数

Myservice.remove(param1, function() { 
    //test contents of this.. 
}); 

然而Myservice被嘲笑,与remove功能是间谍:

myservice = { 
    remove: jasmine.createSpy('Myservice.remove') 
} 

我试过callThrough()callFake(),但我相信这是更多的只是返回的结果Ø f删除,不覆盖参数功能,所以自然我没有区别。

所以在我的测试中,我有以下几点:

it('should do something', function() { 
    // generic directive setup 
    expect(myservice.remove).toHaveBeenCalled(); 
}); 

这个工程和测试通过,但我无法涵盖在参数该功能,任何想法如何进行呢?

回答

0

答案是用正确的参数调用伪函数,然后调用其中的函数。

myservice = { 
    remove: jasmine.createSpy('Myservice.remove').and.callFake(function(data, callback) { 
     callback(); 
    }); 
} 

相同的测试通过,但现在覆盖范围完全覆盖作为参数传入的函数。

相关问题