Sinon:存根和整个对象并用新对象替换它

3
使用Sinon,如何对整个对象及其所有方法进行存根,然后将它们替换为另一个对象?
我尝试了以下代码,但似乎不起作用:
var stubby = sinon.stub(stubbedObj);
stubby.returns(newReplacementObj);

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

请看一下这个链接:https://github.com/thlorenz/proxyquire。听起来这个可能更适合你的需求。 - Snekw
1
你应该使用 sinon mocks - alexmac
你的句子不太清楚。你不能存根方法并将它们替换为一个对象。但是你可以存根一个对象的所有方法,sinon.stub(anObject) 会返回 anObject 而不是特殊的存根对象。在你的情况下,stubbedObj === stubbytrue。所以除非你在其中有 returns,否则没有这样的方法。虽然每个存根方法(也就是存根)都有一个 returns 方法,可以用来返回任何你想要的东西。 - try-catch-finally
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接