を嘲笑することは可能ですか?
EntityRepository::findOneBy{$field}($value)
関数?
使用:
->getMock('EntityRepository')
->expects($this->any())
->method('findOneByField')
findOneByField
実際の関数ではなく、によってマップされるため、常に null で解決され__call()
ます。少なくとも私はそれが問題だと思います..
を嘲笑することは可能ですか?
EntityRepository::findOneBy{$field}($value)
関数?
使用:
->getMock('EntityRepository')
->expects($this->any())
->method('findOneByField')
findOneByField
実際の関数ではなく、によってマップされるため、常に null で解決され__call()
ます。少なくとも私はそれが問題だと思います..
メソッドをモックできます__call
。簡単な例を挙げます:
クラス:
class A {
public function __call($fname, $args) {
if($fname === 'test') {
return 'test';
}
}
}
テスト:
class ATest extends PHPUnit_Framework_TestCase
{
public function testA() {:
$mock = $this->getMock('A');
$mock->expects($this->any())
->method('__call')
->with('test')
->will($this->returnValue('test'));
var_dump($mock->test());
}
}
で同じことができますEntityRepository
。私はテストのために手に持っていませんでした。