ある関数の戻り値を1回目と2回目で変更する方法。
いっつも忘れるのでメモ。
こんな時。
hoge = {
fetchHoge: () => {}, // 何かしらを返す関数
}
// 同一関数を複数回実行する関数
function fuga(){
const first = hoge.fetchHoge(); // ← 'a'を返して欲しい
const second = hoge.fetchHoge(); // ← 'b'を返して欲しい
return [first, second]
}
以上のような感じで、fuga
をテストするときに、hoge.fetchHoge
の戻り値を1回目に実行された時と2回目に実行された時で変更したいとします。
方法
it('戻り値変えたいテスト', () => {
spyOn(hoge, 'fetchHoge').and.returnValues('a', 'b');
expect(fuga()).toEqual(['a', 'b'])
})
以上。returnValues()
を使いましょうという話でした。