PHPUnit でユニットテストを実行した際に、以下のエラーが発生して試行錯誤して意外な原因にたどり着いたのでメモしておく。
1 | ArgumentCountError: Too few arguments to function Tests\SampleTesst::test_showMessage(), 0 passed in /root/vendor/phpunit/phpunit/src/Framework/TestCase.php on line 1415 and exactly 1 expected |
まず、以下のようなテストコードを作成した。
1 |
|
一見すると特に問題なく動くような気がするが、実際にテストを実行してみると、エラーになってしまう。
1 | # vendor/bin/phpunit tests/SampleTesst.php |
色々、試行錯誤を繰り返した結果、エラーが発生しなくなったてーすコードがこちら。
1 |
|
テストを実行すると、問題なく OK となる。
1 | # vendor/bin/phpunit tests/SampleTesst.php |
修正前のテストコードと修正後のテストコードの diff をとってみる。
1 | # diff tests/before_SampleTesst.php tests/after_SampleTesst.php |
‘/‘ と ‘/*‘ が成否を分けていた。
あらためて PHPUnit のドキュメント を読んでみると、確かに ‘/**’ を使えと書いてあった。
PHP の doc コメントは、/** で始めて */ で終わる必要があります。 その他の形式のコメントで書いたアノテーションは、無視されます。
普段は ‘/*’ を使っているが、なぜかここだけ ‘/‘ を使っていたので発生したミスだった。