【问题标题】:How to put a spy on clearInterval() in sinon?如何在 sinon 中对 clearInterval() 设置间谍?
【发布时间】:2019-05-13 23:37:37
【问题描述】:

我想测试 clearInterval() 是否已在 componentWillUnmount() 上调用。如何在clearInterval() 上设置间谍?

it("should unmount", () => {
    const wrapper = shallow(<MessageLoaderWrapper messageList={messageList} />);
    wrapper.unmount();
    expect(wrapper.find(".tabs-infinite-loader--message").length).to.equal(0);
});

目前正在测试一个类名不再存在;但确实应该测试 clearInterval() 是否被调用。

【问题讨论】:

    标签: reactjs sinon sinon-chai


    【解决方案1】:

    全局函数可以在 windowglobal 上进行监视,具体取决于环境,例如:

    sinon.spy(global, 'clearInterval');
    ...
    expect(clearInterval).to.have.been.calledOnce;
    

    【讨论】:

    • 我想如果他们有对象,需要将它与对象上的 shouldHaveBeenCalled 等价物结合起来,不确定 sinon 是如何工作的
    • @Rikin 没错。这取决于如何配置间谍断言。在这种情况下,它看起来是Sinon+Chai。
    • 谢谢。展示保存间谍并在测试后恢复它的最佳做法可能是一个好主意。
    • @NotoriousWebmaster 这取决于您的设置。最佳实践是为您的测试运行程序使用 Sinon 插件,它会自动执行此操作。没列出来,是摩卡吗?见npmjs.com/package/mocha-sinon
    猜你喜欢
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2018-12-26
    • 1970-01-01
    • 2018-08-16
    • 2019-06-22
    相关资源
    最近更新 更多