【发布时间】: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 === stubby是true。所以除非你有returns,否则没有这样的方法。虽然每个存根方法(它是一个存根)都有一个returns方法,可以用来返回你想要的任何东西。
标签: javascript unit-testing sinon