phpunitのオプション"--testdox"を使用する
phpunitのオプション--testdox
を使用することで、テストの実行結果を見やすく表示することができます。
以下のように"test"で始まり、単語の区切りを"_"で区切るかたちでメソッド名を作っておきます。(camelCaseでの記載でも良いです)
テストコード
class MockTest extends TestCase
{
public function test_it_displays_all_items_of_player()
{
$this->assertEquals(1, 1);
}
public function testBasicTest()
{
$this->assertTrue(true);
}
}
すると、実行結果には単語ごとにスペースで区切られた形でどのテストが通ったかがわかるようになります。
これをslackなどでシェアしておくと、エンジニアではない人が見ても、英文を見て何のテストが行われているのかを類推することができます。
% ./vendor/bin/phpunit --testdox
PHPUnit 8.5.8 by Sebastian Bergmann and contributors.
Mock (Tests\Feature\Mock)
✔ Basic test
✔ It displays all items of player
phpunit-watchを使って、ファイルを保存するたびに自動でユニットテストを再実行する
composerパッケージphpunit-watchを使うことで、ファイルをCtrl-Sで保存するたびに自動でテストを再実行させることができます。
phpunit-watchの使い方は、こちらの記事を確認してください。
jasny/php-code-qualityを使ってコードの品質チェックも同時に行う。
プログラムの品質チェックにこだわりがある人は、phpunitだけでなくphpcs・phpmd・phpstanなどのチェッカも同時に動かしたい事が多いです。ですが、Laravelのフレームワークではphpunitの設定だけ準備されており、他のコードチェッカのパッケージや初期設定が存在せず、初期セットアップに時間がかかってしまいます。
Composerパッケージjasny/php-code-qualityを利用することで、これらのセットアップを極めて短時間で行えます。
やりかけ作業のリマインダとしてテストコードを利用する
仕事でプログラムを書いていると、月曜の朝に仕事に取り掛かるときに、先週の金曜日まで何をやっていてどこから再開すればよいか思い出すのに時間がかかる場合があります。
これを避けるために、金曜日の作業終了時に次作業する予定のテストだけを先に書いておきます。月曜日はとにかくユニットテストを実行し、failすることを確認することで、failしたテストを通すことから始めれば良い。という思い出すためのトリガとしてテストを使うことができます。