我正在编写测试以查看是否调用了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 does not exist
。当我创建自己的自定义全局函数时,此方法可以正常工作。 Based on this other post似乎可以使用我上面使用的语法监视任何全局函数。如果我创建自己的函数,则此语法有效。关于为什么Array.prototype.map
返回未定义的任何想法?
答案 0 :(得分:2)
希望你已经得到了答案,但对于搜索的人来说,这是因为你应该
spyOn(Array.prototype, 'map');