1. ホーム
  2. javascript

[解決済み] jasmineのモックオブジェクトのメソッドをスタブ化する方法は?

2023-05-17 16:47:23

質問

Jasmineのドキュメントによると、モックはこのように作成することができるようです。

jasmine.createSpyObj(someObject, ['method1', 'method2', ... ]);

これらのメソッドの1つをどのようにスタブするのでしょうか?例えば、あるメソッドが例外をスローしたときに何が起こるかをテストしたい場合、どのようにそれを行うのでしょうか?

どのように解決するのですか?

チェーン method1 , method2 は、EricGがコメントしたように、しかし andCallThrough() (あるいは and.callThrough() を使用します)。これは 実際の実装に委ねる .

この場合 and.callFake() で連結し、呼び出したい関数(例外を投げるなど何でも構いません)を渡します。

var someObject = jasmine.createSpyObj('someObject', [ 'method1', 'method2' ]);
someObject.method1.and.callFake(function() {
    throw 'an-exception';
});

そして、検証する。

expect(yourFncCallingMethod1).toThrow('an-exception');