Javascript Jasmine在全局窗口对象的本机JS函数上创建间谍
我正在编写一个测试,看看是否调用了Javascript Jasmine在全局窗口对象的本机JS函数上创建间谍,javascript,jasmine,Javascript,Jasmine,我正在编写一个测试,看看是否调用了Array.prototype.map。我认为这会起作用,因为Array.prototype.map位于全局窗口对象上: it("does not use Array.prototype.map", function(){ spyOn(window, "Array.prototype.map") fn([2,2,3]); expect(Array.prototype.map.calls.count()).
Array.prototype.map
。我认为这会起作用,因为Array.prototype.map位于全局窗口对象上:
it("does not use Array.prototype.map", function(){
spyOn(window, "Array.prototype.map")
fn([2,2,3]);
expect(Array.prototype.map.calls.count()).toEqual(0);
});
我收到错误
Array.prototype.map不存在
。当我创建自己的自定义全局函数时,这个方法工作得很好。似乎任何全局函数都可以使用我上面使用的语法进行监视。如果我创建自己的函数,这种语法就可以工作。你知道为什么Array.prototype.map
返回未定义的吗?希望你已经得到了答案,但是对于搜索的人来说,这是因为你应该得到答案
spyOn(Array.prototype, 'map');