18

でインスタンスを作成した場合 var a = sinon.createStubInstance(MyContructor)

のようなスタブ化された関数の 1 つを置き換えるにはどうすればよいですかvar stub = sinon.stub(object, "method", func);

私がこれを行っている主な理由は、これが述べたように複数のコールバックの回避策を達成したいからです

4

4 に答える 4

14

sinon.createStubInstance(MyConstructor)orを使用してオブジェクト全体をsinon.stub(obj)スタブした後、新しいスタブをプロパティに割り当てるか (@g00glen00b で説明されているように)、再スタブする前にスタブを復元することによってのみ、スタブを置き換えることができます。

var a = sinon.createStubInstance(MyConstructor);
a.method.restore();
sinon.stub(object, "method", func);

a.method.restore()これの利点は、期待される動作で後で呼び出すことができることです。

.call(func)スタブ APIに、スタブによって呼び出される関数を後でオーバーライドするメソッドがあれば、より便利です。

于 2016-10-30T11:54:25.137 に答える