PHPUnitで簡単なテストをする
前回PHPUnitのインストールまでやったので簡単なサンプルまでを試すメモです
準備
ディレクトリ構成
composerでPHPUnitいれたらvendeorができるので 追加でメイン用とテスト用のphpを作る
www/ ├src/ │ └message.php ├tests/ │ └messageTest.php ├vendor/ │ └︙ ├composer.json ├composer.lock
message.php
メイン用
<?php class Message { private $message; public function __construct(string $message) { $this->message = $message; } public function get() { return $this->message; } } ?>
messageTest.php
テスト用
<?php require_once ('vendor/autoload.php'); require_once (dirname(__FILE__) .'/../src/message.php'); use PHPUnit\Framework\TestCase; class MessageTest extends TestCase { public function testGet() { $message = new Message('hello, world'); $this->assertEquals('hello, world', $message->get()); } } ?>
コマンド
testsフォルダを指定して***Test.phpを調べてくれる
$ vendor/bin/phpunit /tests PHPUnit 5.5.4 by Sebastian Bergmann and contributors. W. 2 / 2 (100%) Time: 204 ms, Memory: 4.00MB There was 1 warning: 1) Warning No tests found in class "PHPUnit\Framework\TestCase". WARNINGS! Tests: 2, Assertions: 1, Warnings: 1.
とりあえずはテストできてるみたいだけどWARNINGSが気になる。
呼び出し方がまちがってる?
原因探るためいろいろ入れたり消したりしてたらWARNINGSが消えて何で解消できたのがか不明。