gpt4 book ai didi

coffeescript - 使用不同的 andCallFake() 方法重用 Jasmine Spy

转载 作者:行者123 更新时间:2023-12-01 23:23:42 25 4
gpt4 key购买 nike

我正在尝试在 jasmine(1.3 版)中编写一些高级测试,我在其中设置了一个对 $.getJSON() 方法的监视。这是在此处看到的 beforeEach block 中设置的:

describe 'the Controller', ->
beforeEach ->
Fixtures.createTestData()
jqXHR = Fixtures.jqXHR
section = new section({el:appDom})

response = Fixtures.createSectionsSearchResponse()
spyOn($, 'getJSON').andCallFake( ->
jqXHR.resolve(response)
)

然后我像往常一样进行搜索查询(效果很好)。

在我后来的一个测试中,我有第二个被 ping 过的 API。我想更改正在发送的响应,但似乎无法正常工作。 This Blog似乎暗示我可以用不同的 andCallFake() 重用 spy ,但它似乎不起作用。我得到的是原始响应对象,而不是我重写的方法

    $.getJSON.andCallFake( ->
jqXHR.resolve({"count":4})
)

关于如何重用或销毁原始 spy on 方法有什么想法吗?

最佳答案

您可以重置 spy 。

来自 Jasmine guide :

it("can be reset", function() {
foo.setBar(123);
foo.setBar(456, "baz");

expect(foo.setBar.calls.any()).toBe(true);

foo.setBar.calls.reset();

expect(foo.setBar.calls.any()).toBe(false);
});

关于coffeescript - 使用不同的 andCallFake() 方法重用 Jasmine Spy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484451/

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