phpspec導入してみた
phpspecとは
- BDDFrameworkの一つ
- 自然言語でテストかける
- 親戚はBehat
PHPUnitの違い
- すごいわかりやすい
Composerを使って導入する
- 導入したいprojectディレクトリを作成project配下に移動する
- Composerを導入する
phpspecをComposerに追加する
{ "require-dev": { "phpspec/phpspec": "~2.0" }, "config": { "bin-dir": "bin" }, "autoload": {"psr-4": {"": "src"}} }
- phpspecを入れる
- php composer.phar install
導入されているか確認する
- バージョンを確認する
- phpspec -v
実際に試してみる
Specification for test created in /vagrant/develop/spec/TestSpec.php.
- テストを実行する
- phpspec run
- クラスがない場合は作るか作らないか聞かれる(y:生成 n:生成しない)
- y
Class test created in /vagrant/develop/src/Test.php.
オートローダを使いたい時
- namespaceを使ってファイルを生成したい場合
- composer.jsonの設定を書き換える
"autoload": {"psr-4": {"App\\": "src"}}
- オートローダを更新する
php composer.phar dumpautoload
- 設定を作成する(設定ファイルをルート配下に設置)
- 用途に合わせて変えたい(以下のようにしたい時)
- dev/spec/test(テストファル)
- dev/test(クラスファイル)
- 用途に合わせて変えたい(以下のようにしたい時)
vim phpspec.yml { "require-dev": { "phpspec/phpspec": "~2.0" }, "config": { "bin-dir": "bin" }, "autoload": {"psr-4": {"App\\": "src"}} }
- テストファイルの生成
bin/phpspec desc App\\クラス名
- テスト実行
phpspec run
ドキュメントが読みたい時
公式以外にもドキュメントはみれる
- vendor/phpspec/phpspec/features/matchers/配下のファイル
- テストしたいソースとphpspecでのテストが対になってはいっている
- phpspecのテストはBehatで書かれているため読めるなら使い方がわかりやすい(読める人)
おもったこと
- 情報少なすぎるw
- なぜかComposer周りでハマってた。
- 設定はあってるはずなのにいつまでエラーが出続ける(導入ミスったのかな?)
- 対策としては作成したソースだけ別ディレクトリに逃してComposer入れなおした。
- オートローダーすごいいい
- テストマンになるぞー!!
- TDDに興味ある
- 手動テストだるくてやりたくない
参考元
phpspec-docs/installing-phpspec.rst at master · phpspec/phpspec-docs · GitHub
ytake/spec-unit-testing · GitHub
www.slideshare.net
ytake.blog | PHPSpecのLTしてきました(+PHPUnit、Behat、Codeception記述方法の違いも)