gpt4 book ai didi

javascript - 如何在另一个方法中创建的对象上使用 Jasmine spy ?

转载 作者:行者123 更新时间:2023-11-28 19:40:13 26 4
gpt4 key购买 nike

给定以下代码片段,您将如何创建 Jasmine spyOn 测试以确认 doSomething 在您运行 MyFunction 时被调用?

function MyFunction() {
var foo = new MyCoolObject();
foo.doSomething();
};

这是我的测试结果。不幸的是,在评估 spyOn 调用时出现错误:

describe("MyFunction", function () {
it("calls doSomething", function () {

spyOn(MyCoolObject, "doSomething");
MyFunction();
expect(MyCoolObject.doSomething).toHaveBeenCalled();

});
});

此时 Jasmine 似乎无法识别 doSomething 方法。有什么建议吗?

最佳答案

或者,正如 Gregg 所暗示的,我们可以使用“原型(prototype)”。也就是说,我们可以监视 MyCoolObject.prototype,而不是直接监视 MyCoolObject。

describe("MyFunction", function () {
it("calls doSomething", function () {
spyOn(MyCoolObject.prototype, "doSomething");
MyFunction();
expect(MyCoolObject.prototype.doSomething).toHaveBeenCalled();

});
});

关于javascript - 如何在另一个方法中创建的对象上使用 Jasmine spy ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291371/

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