第4章はテストの話。

- 作者:MartinFowler
- 発売日: 2019/12/06
- メディア: Kindle版
リファクタリングにテストは必須。ここでいうテストとはいわゆる単体テスト。 リファクタリングは外部からの振る舞いを変えずに内部構造を変えること。 だから常に単体テストを実行して、外部からの振る舞いが変わってないことを確認しながら作業する。
自分が単体テストに入門した著書はこれ。読んだのはもう10年近く前かも。

Pragmatic Unit Testing In Java With Junit
- 作者:Hunt, Andrew,Thomas, David
- 発売日: 2004/09/01
- メディア: ペーパーバック
たまに「あえてロジックを変えてテストが失敗することを確認する」など、この本と共通する話が多かったな。 そこらへんは今でもちゃんと実践できている気がする。
単体テストはうまくかけばあまり変更することもないんだろうけど、毎回そんなうまく書けるわけもなくて。 コードを変えたときに(特にインタフェースを変えたときに)テストも修正しないといけないということがままあると思う。
でも、そのコストは必要な投資だと思っていて、単体テストがあることで得られるリターンは大きいと思う。 人手を介さず CI で常に回しておくこともできるし。 まぁそれでも大量の単体テストを書き直してるときはけっこうしんどいのは間違いないw