PHPUnit + Laravel = ? ドシンプルな試験 の話
どどどど、ドレッドノート!
さて、今回は激烈シンプルな試験を作りました。
簡単なクラスは下です
<?php namespace App; class Hello { public function say(){ return "Hello"; } public function echo($word){ return $word; } }
Appの下にでも置いてください。
んでもって試験です
<?php namespace Tests\Unit; use App\Hello; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; use Tests\TestCase; class HelloTest extends TestCase { public function test_say(){ $hello = new Hello(); $this->assertEquals('Hello',$hello->say()); } public function test_echo(){ $hello = new Hello(); $this->assertEquals('Hello',$hello->echo('Hello')); $this->assertEquals('Wow',$hello->echo('Wow')); } }
testsの下の
Unit/HelloTest.phpにでも書いてください
んで、試験
$ phpunit PHPUnit 8.3.5 by Sebastian Bergmann and contributors. ..... 5 / 5 (100%) Time: 332 ms, Memory: 26.00 MB OK (5 tests, 6 assertions)
神かよ!って位シンプルです。
5 tests, 6 assertionsってのがポイントです。
増えてるでしょw
次回はTDDかな
… シンプルすぎたのでちょっとだけ解説
よみゃぁ〜分かりますが、Helloには二つの関数sayとechoがあります。
sayは’Hello’の文字を返して、echoは引数の文字列を返します。
$this->assertEquals('Hello',$hello->say());
では、先のHelloを返すのを確認しています。
this->assertEqualsは読んで字のごとく、第一引数と第二引数が同じであるかを確認しています。もし違うなら先のOKがfail?になります
で、テストの関数名ですが、test〜 で始めると試験として認識してくれます。
laravelでデフォルトで作成されるphpunit.xmlではUnitとFeutureのディレクトリ下 〜Test.phpを試験として認識してくれます
TDDは我が同士のケント・ベックが…
まじで書くことないので以上です!
Have a Good PHPUnit Life!