読者です 読者をやめる 読者になる 読者になる

PHPUnitで簡単なテストをする

PHP 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が消えて何で解消できたのがか不明。