詰将棋のようにTDDでC#を学ぶ実験 | Moonmile Solutions Blog
http://www.moonmile.net/blog/archives/8347
の派生版として、PHP 版を作ってみました。
moonmile/TestPro-PHP: TDD で学ぶ PHP
https://github.com/moonmile/TestPro-PHP
真面目に PHPUnit を使うのは始めてなので(以前、CakePHP を使ったときは、クライアントの C# でテストしていたので)、もうちょっと効率のよい書き方があるのかもしれませんが、ひとまず tests フォルダを作って、テストクラス毎にファイルを分けています。テスト対象となるクラス名を「Target」で統一したかったので(いちいち変えるのが面倒だったとも云う)、ファイル名だけが「target001.php」のように変わっています。
文法だけだと、C# も PHP もやれることは同じなので、ちょうど比較になって良いかもしれません。Target となるクラスは、できるだけ既存の PHP クラスのスタイルに近づけたほうがよいかなと感じています。
設定
Windows に xampp を入れて php が動く環境を作っています。
XAMPP Installers and Downloads for Apache Friends
https://www.apachefriends.org/jp/index.html
xampp の phpunit のバージョンが古いので、以下の場所で、phpunit.phar をダウンロードして c:/xampp/php/phpunit.phar にコピーします。
PHPUnit ? The PHP Testing Framework
https://phpunit.de/
xampp の /xampp/php/phpunit.bat を
1 | "%PHPBIN%" "C:xamppphpphpunit.phar" %* |
のように書き替えます。コマンドラインでパスを追加して、src/01/tests フォルダ内で
1 | phpunit test001.php |
のように実行すれば ok です。
テストコードのメソッド名が日本語なので、文字化けしてしまいます。UTF-8 が正しく表示されるように、
1 | chcp 65001 |
で文字コードを変更してください。
こんな風に、Visual Studio Code 内からも表示できるようになります。
PHP Programming with Visual Studio Code
https://code.visualstudio.com/Docs/languages/php
vscode の PHP のための拡張設定は、まだ試行錯誤中なので後で。
先行きは
それなりに、配列とか連想配列の使い方を覚えられそうなので、もう少し文法を網羅できるようにテストコードを追加していくのと、C#のファイルアクセスと同じように、PHP からローカルファイルのアクセスをするところ、HTTPプロトコルのアクセス(引数の取り込みとか)、データベースアクセスを加えると、実用的になるかなと。
あと、Python 版も作る予定です。