web-dev-qa-db-ja.com

プロパティ値をスタブしないシノン

Sinon v4.1.2を使用しています。ドキュメント( http://sinonjs.org/releases/v4.1.2/sandbox/ )によると、以下を使用してプロパティを設定できるはずです。

sandbox.stub(myObject, 'hello').value('Sinon');

ただし、エラーが発生します。

プロパティ '値'はタイプ 'SinonStub'に存在しません

これを行う実際の方法は何ですか?利用可能なすべての関数を調べてreturnValueを試しましたが、それも有効な関数ではありません。

以下は古いバージョンのsinonで動作していました:

sandbox.stub(myObject, 'hello', 'Sinon');
7
Westy

これは私のためにSinon.JS v4.1.2で動作します:

myObject = {hello: 'hello'}
sandbox = sinon.createSandbox()
sandbox.stub(myObject, 'hello').value('Sinon')
myObject.hello // "Sinon"
sandbox.restore()
myObject.hello // "hello"
13
Jonathan Benn

私の経験では、毎回サンドボックスを作成する必要はありません。コードなしでスタブを使用して、コードの複雑さを軽減できます。次のようにスタブを定義するだけです:

const stubHello = sinon.stub(myObject, 'helloFunction');

そして、あなたはすべてのスタブパワーを持っています!

0
nrm97