📑

SymfonyでFormInterface実装クラスを配列として使ってる箇所のテスト用モックの作り方

2020/11/27に公開

SymfonyでFormInterface実装クラス(例:Symfony\Component\Form\Form)を配列として使ってる

public function someMethod(FormInterface $form)
{
	if ($form['some_param']->getData() === 'hoge') {
		return true;
	}
	
	return false;
}

↑みたいなやつのメソッドのテストを書く時のモックの作り方のメモ

public function testSomeMethod()
{
	$value = $this->createMock(FormInterface::class);
	$value->expects($this->any())
		->method('getData')
		->willReturn('hoge');
		
	$mock = $this->createMock(FormInterface::class);
	$mock->expects($this->any())
		->method('offsetGet')
		->willReturn($value);
	
	$someObj = new SomeObj();
	$result = $someObj->someMethod($mock);
	$this->assertTrue($result);
}

Discussion