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!