2016-04-22 11 views
1

Sinonを使用すると、オブジェクト全体とメソッドのすべてをスタブして別のオブジェクトに置き換える方法はありますか?Sinon:スタブとオブジェクト全体を置き換えて新しいオブジェクトに置き換えます

私はこのような何かを試してみましたが、動作するように見えるdoesntの:

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

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

https://github.com/thlorenz/proxyquireこれを見てください。そのような音があなたのニーズに合っています。 – Snekw

+1

sinon [mocks](http://sinonjs.org/docs/#mocks)を使用する必要があります。 – alexmac

+0

あなたの文章は不明です。メソッドをスタブしてオブジェクトに置き換えることはできません。 'sinon.stub(anObject)'は特別なスタブオブジェクトではない 'anObject'を確実に返しますが、オブジェクトのすべてのメソッドをスタブすることができます。あなたのケースでは 'stubbedObj === stubby'は' true'です。だからあなたが '返品 'をしない限り、そのような方法はありません。各スタブ付きメソッド(スタブ)には、あなたが望むものを返すために使われる 'returns'メソッドがあります。 –

答えて

1

また、あなたは、代わりにスタブできる関数を呼び出すようにコードをリファクタリング考えることができます。 window.somethingをスタブする代わりに、window.somethingを使用するアクセサメソッドを作成し、そのアクセサメソッドをスタブアウトすることができます。

関連する問題