generated at
Test Stub
SUTが中で依存している対象」の代用品
SUTに対する間接入力を操作することで、SUTを検証する





参考


この図の通り
107

こんな感じの関数があり
hs
f x = g x + 100
今は関数 f のテストをしたいとすると、 g には特定の値を返してもらってほしかったりする
g のテスト自体は別で書くので、ここでは f に注目してテストをしたいので。


あるある
next.jsのuseRouterを内部で使っているhooksをテストしたいときに、useRouterのstubを作るとか

スタブとのやり取りを決して検証してはならない
スタブへの呼び出しは、最終的な結果を生み出すための一過程に過ぎない
仮のデータを提供してるだけ
テストの壊れやすさにつながる
実装の詳細
テストしたいことの本質ではないからってことね
「スタブとのやり取りの検証」って例えば何?



gpt-4に書かせたコードの一部
内部でfetch処理が書かれているのでこれを置き換えないとテストできない
ts
// 成年かどうかを判定する関数 // 内部でgetuserFromDBする関数に依存している async function isUserAdult(userId: string): Promise<boolean> { const user = await getuserFromDB(userId); return user.age >= 18; }
これはコード例がかなり微妙だと思うが、ノリは伝わる








jest