【问题标题】:Spy on destructured require method监视解构的 require 方法
【发布时间】:2016-10-10 19:33:29
【问题描述】:

我有一个方法,我可以在其中导入带有解构的方法。我试图窥探这种方法,但不断遇到错误。

const { addition } = require('./my-math-lib');

const additionSpy = sinon.spy(addition);

testMethod.doMath();

expect(additionSpy.calledOnce).to.be.equal(true);

很遗憾,这个单元测试不起作用。乳我查看additionSpy 对象,我看到notCalled 是真的。

如果我将代码更改为 -

const mathStuff = require('./my-math-lib');

const additionSpy = sinon.spy(mathStuff, 'addition');

testMethod.doMath();

expect(additionSpy.calledOnce).to.be.equal(true);

这个单元测试将通过。

【问题讨论】:

    标签: javascript node.js unit-testing require sinon


    【解决方案1】:

    Sinon 的 spy 方法不能修改函数。函数在 Javascript 中是不可变的。 Sinon 的 spy 方法可以创建一个新函数(在您的第一个示例中为additionSpy),或者它可以修改一个对象并替换其上的一个方法(您的第二个示例)。您的第二个示例看起来对您想要做的事情是正确的。

    【讨论】:

    • 谢谢,第二个例子有效。我只是真的想在我的 require 调用中使用解构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2018-12-30
    • 1970-01-01
    • 2018-03-31
    • 2019-01-29
    • 2013-09-06
    • 1970-01-01
    相关资源
    最近更新 更多