詰将棋のようにTDDでプログラムを学ぶ(PHP編)

詰将棋のように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 を

"%PHPBIN%" "C:xamppphpphpunit.phar" %*

のように書き替えます。コマンドラインでパスを追加して、src/01/tests フォルダ内で

phpunit  test001.php

のように実行すれば ok です。

テストコードのメソッド名が日本語なので、文字化けしてしまいます。UTF-8 が正しく表示されるように、

chcp 65001

で文字コードを変更してください。

image

こんな風に、Visual Studio Code 内からも表示できるようになります。

PHP Programming with Visual Studio Code
https://code.visualstudio.com/Docs/languages/php

vscode の PHP のための拡張設定は、まだ試行錯誤中なので後で。

 

 

先行きは

それなりに、配列とか連想配列の使い方を覚えられそうなので、もう少し文法を網羅できるようにテストコードを追加していくのと、C#のファイルアクセスと同じように、PHP からローカルファイルのアクセスをするところ、HTTPプロトコルのアクセス(引数の取り込みとか)、データベースアクセスを加えると、実用的になるかなと。

あと、Python 版も作る予定です。

カテゴリー: PHP, TDD パーマリンク