Mockery
PHPUnitでmockをつくるためのライブラリ
Mockery — Mockery Docs 1.0-alpha documentation
便利な機能
byDefault()
setUp()でデフォルトの値を設定して、個別のテストケースで出力を変えたい時に使う
これをつけないと上書きできない
恣意的な例だが、こんな感じで使う
code:sample.php
use Mockery as m;
// PHPUnitのテスト向け基底クラスを継承していると仮定する
class VTuberTest extends Test {
private $vtuberMock
public function setUp() {
$this->vtuberMock = m::mock(VTuber::class);
// デフォルトの名前を設定する
$this->vtuberMock->shouldRecieve('getName')->andReturn('Mito')->byDefault();
}
// 何もしなければデフォルトの名前が取得できる
pubilc function testGetNameByDefault() {
$container = new VTuberContainer($this->vtuberMock);
$vtuberNames = $container->getVTuber();
// デフォルトの名前が帰る
$this->assertSame('mito', $vtuberNames);
}
// デフォルトの名前を変える
public function testGetName() {
// 値の上書き
$this->vtuberMock->shouldRecieve('getName')->andReturn('Kaede')->byDefault();
// 後は上と同じ
$container = new VTuberContainer($this->vtuberMock);
$vtuberNames = $container->getVTuber();
// 上書きされた値が返る
$this->assertSame('Kaede', $vtuberNames);
}
}