如何监视不是对象方法的函数。在我的情况下,callMe
也不在window
对象上 - 它是通过angular加载的依赖项。
if (X) {
callMe('hello');
}
答案 0 :(得分:0)
您可以使用jasmine.createSpy
方法创建间谍对象。鉴于间谍对象是常规JavaScript对象,您可以使用此间谍对象覆盖您的callMe
函数,以便监视它。
function callMe() {
// implementation
}
describe('an example block', function() {
it('creates a spy', function() {
callMe = jasmine.createSpy('callMe');
callMe();
expect(callMe).toHaveBeenCalled();
});
});
如果没有窥探功能,
jasmine.createSpy
可以创建一个“裸”间谍。这个间谍扮演任何其他间谍 - 跟踪调用,参数等等。但它背后没有实现。间谍是JavaScript对象,可以这样使用。
答案 1 :(得分:0)
您可以创建一个间谍并将其传递给您的控制器。请检查以下代码:
<script type="text/javascript" src="js/d3.v3.min.js"></script>
这基本上会替换你注入控制器的callMe对象。