gpt4 book ai didi

javascript - 如何监视原始函数而不是 Jasmine 中的虚拟对象以进行 javascript 测试?

转载 作者:行者123 更新时间:2023-11-29 19:50:48 24 4
gpt4 key购买 nike

我查看了有关在 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 而不是 spyOncreateSpy 将创建一个新的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com