gpt4 book ai didi

javascript - 如何在后续调用 sinon.js stub 时使用不同的函数进行 stub

转载 作者:行者123 更新时间:2023-11-27 22:30:51 25 4
gpt4 key购买 nike

我正在尝试编写一个测试,其中我需要使用不同的函数来 stub 函数,具体取决于它是第一次还是第二次被调用。到目前为止我已经尝试过:

  this.dispatcherStub = sinon.stub(alt.dispatcher, 'dispatch');

this.dispatcherStub.onFirstCall().returns((dataArgs) => {
// Some assertion on the data
});

this.dispatcherStub.onSecondCall().returns((dataArgs) => {
// Another assertion on the data
done();
});

请注意,我需要它们是不同的函数,而不仅仅是不同的返回不同的值,因为我需要在第二个函数中调用 Mocha 的done(),因为它是异步调用的。

最佳答案

您需要执行返回的函数:

this.dispatcherStub = sinon.stub(alt.dispatcher, 'dispatch');

this.dispatcherStub.onFirstCall().returns(
(function () {}();
});

this.dispatcherStub.onSecondCall().returns((dataArgs) => {
(function () {
done();
}();
});

您还可以使用 (() => return 4)(); 将箭头函数转换为 IIFE;

关于javascript - 如何在后续调用 sinon.js stub 时使用不同的函数进行 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596139/

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