ある関数のテストを書いているとき、その関数内で呼び出している別の関数(fetchしている関数)をモックにしている
このときテストするロジックが以下の場合
fetchの取得結果が5件以下の場合は、検索条件を変えてもう一度検索する
検索条件に応じたモックの返却する値を定義したい
モックの実装
調べたらmockImplementation
を使うのがよさそう
以下のように設定することで、検索条件criteria
によって返却するオブジェクトを制御することできた
mockFunction.mockImplementation( (criteria: Criteria) => { return criteria.isSomeCondition ? Promise.resolve(MockResultForSomeCondition) : Promise.resolve(MockResult); }, );