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

1 min read読了の目安(約600字

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);
}