テストコードについて質問されました
最近テストコードで質問出たので、そのときに回答したことメモ
間違ってたら、教えてくれると嬉しいです(‘ω‘ )
Q. Stubじゃなくて全部モックでよくね?
Stubじゃなきゃ困るときもある理由を書いてみた。
Stubをちゃんと書けば、 どこかで該当関数の仕様を変えたときに、ちゃんと影響テストできるよね。 例えば、戻り値がModelオブジェクトからmixになったとか。 このとき、同じインターフェースで作っていればStubも変更するはずなので、 Stubを通したテストなら(ある程度)検知ができるよね。 もし、全ての関数をStub使わずモックで置き換えしていたら・・・ 仕様の変更は、全てのモック置き換えで握りつぶされちゃうね
メモ:そもそもに
Stubの目的と、モックの目的ってなんだろうってのも考え直したいやーつ。
モックでの置き換えって、個人的には既にテスト済みとか、テスト範囲外とかを置き換えるとかのイメージ。あと、Laravelとかで標準で実装されてるものとか(これもテスト済みコードと言い換えれる)。
あと、テストコード書いてるときに、なんのためのテストコード、何をテストしたいのかをもう少し考えて書きたい。
とりあえず、テストコード書くときに、何を確かめようとしているんだっけ?ってのを立ち止まって考えてみたいと思いましたまる。