エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

テストコードが書きづらいとき、元コードを直す理由【451日目】

最近あった質問

テストを書くとき、テスト先コードにreturn値がなかった。これじゃテスト書くの難しくないか。

でも、テストを書くために元の仕様を変えるのってなんかおかしくない?

私の回答

テストが難しいってことは、その関数が何をしているのか呼び出し元がわからないってこと。

return値がないとか、ログがないとか、エクセプションが握りつぶされてるとかって、テストコード書けないと思うけど、
それは呼び出し元が何をしているのかが検知できない状態だし、そのコードがおかしな状況になっているの可能性が高いってことじゃないかな。

つまり、テストコードを書けないというのは、それだけその関数が異常なのでは?

あくまで一例

これは、あくまで最近あった一例であり、私の考え方の一つです。

でも、テストコードが書けない、それって今どういう状態なんだろう?っていうのを分析してみると、元コードの問題が見つけやすくなると思います。

そもそもテストしなくてもいいのではないかって言うのもあるので、是非一度立ち止まって考えてみてください!