【问题标题】:Sinon: Stub and entire object and replace it with a new objectSinon:存根和整个对象并将其替换为新对象
【发布时间】:2016-04-22 19:57:13
【问题描述】:

使用Sinon,如何存根整个对象及其所有方法,然后用另一个对象替换它们?

我尝试过类似的方法,但它似乎不起作用:

var stubby = sinon.stub(stubbedObj);
stubby.returns(newReplacementObj);

console.log(stubby); // this returns stub, but it would think that it should return newReplacementObj? 

【问题讨论】:

  • github.com/thlorenz/proxyquire 看看那个。听起来这样会更好地满足您的需求。
  • 你应该使用 sinon mocks.
  • 你的句子不清楚。您不能存根方法并用对象替换它们。您可以存根一个对象的所有方法,尽管sinon.stub(anObject) 肯定会返回anObject 没有特殊的存根对象。在您的情况下,stubbedObj === stubbytrue。所以除非你有returns,否则没有这样的方法。虽然每个存根方法(它是一个存根)都有一个 returns 方法,可以用来返回你想要的任何东西。

标签: javascript unit-testing sinon


【解决方案1】:

您还可以考虑重构代码以调用一个函数,然后您可以改为存根。示例而不是存根 window.something,您可以创建一个使用 window.something 的访问器方法,然后存根该访问器方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 1970-01-01
    • 2019-09-12
    • 2015-03-08
    • 2018-09-11
    • 2021-07-23
    相关资源
    最近更新 更多