コピペコードで快適生活

明日使えるソースを自分のために

PHPUnitのテストの書き方 超入門

いままで書いたことなかったのでメモ。

<?php
require_once 'ContractStartEvent.php';

//
// PHPUnit_Framework_TestCase を継承して
// テスト用クラスを作る
//
class ContractTest extends PHPUnit_Framework_TestCase {
    //
    // テスト用メソッドは、prefixにtestと付ける。
    //
    public function testCreate() {
        $contractModel = new Contract();

        // モックインスタンスを作成する。
        // 引数には実際に実装しているクラスを指定する。
        $paymentApiClient = $this->createMock(PaymentApiClient);

        // モックにsettle関数と戻り値を追加する。
        $paymentApiClient->method('settle')->willReturn(array('result' => true));

        $args = array(
            'start_at' => '2021-06-01T00:00:00+09:00'
        );
        $contract = $contractModel->create($args, array('paymentApiClient' => $paymentApiClient));

        // テスト実行
        $this->assertEquals($contract['start_at'], '2021-06-01T00:00:00+09:00');
    }
}