我查看了有关监视 Jasmine 中的函数的其他问题,但我的疑问没有得到解答。我打算使用 andCallThrough
来跟踪 src
脚本中的原始函数。这就是我所拥有的:
describe("My Test to spy :", function() {
var mySpy = jasmine.createSpy(window, "login");
beforeEach(function(){
mySpy();
});
it("Expects login() will be called", function(){
expect(mySpy).toHaveBeenCalled();
});
});
所以这个测试通过是因为它是被调用的 spy ,对吗?不是该功能的原始实现。因此,如果我使用 mySpy.andCallThrough() 则会出现错误。这些文档都是关于链接对象和方法的。没有任何功能。需要一些帮助。
最佳答案
问题是您使用 createSpy
而不是 spyOn
。 createSpy
将创建一个新的 spy ,因此您无法对其使用 andCallThrough
,因为没有可调用的函数。使用 spyOn
将用 spy 替换现有函数并将旧函数保存在 spy 中。因此,当您使用 andCallThrough
时,它将调用这个旧方法。
您可以使用createSpy
,但是您必须传递名称和原始函数:
jasmine.createSpy('someName', window.login)
当你使用 `spyOn' 时,你必须传递一个包含函数的对象和函数的名称:
jasmine.spyOn(window, 'login')
关于javascript - 如何监视 Jasmine 中的原始函数而不是虚拟函数以进行 JavaScript 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17864964/