あなたのテストコードは”コミュニケーション”してますか? by きんじょうひでき

PHP Conference Japan 2024
レギュラートーク(25分)

あなたのテストコードは”コミュニケーション”してますか?

o0h_ きんじょうひでき o0h_
7

Tests as Documentationという考えがあります
自動化テストは、コードの動かし方と、どう動作するかを示す文書のようにある(べき)です
つまり、他者を意識して何かを伝えるのを助ける存在とも言えるでしょう

もっと言えば、受け取る側と伝える側がいる”Test as Communication"とも呼べそうです
例えば、プルリクエストを送る場面。レビュアーに「伝えるため」のテストになっていますか?
何を理解して欲しいか、どこを気にして欲しいか、そのために何を強調するか──

テストコードを「伝わりやすくする」ため気をつけている事を、 主観や好みや癖を盛り盛りで話します

  • 一時変数・メモ変数で「名前」を与える
  • データプロバイダーをどう使うか
  • カスタムアサーションの導入
  • 読まなくて良いモノを奥に押し込む