我想测试是否调用了对象上的方法。我想通过模拟Object
而不是任何特定的类来实现这一点。但是下面的代码抛出了一个致命的错误:
class MyTest extends PHPUnit_Framework_TestCase
{
public function testSomeMethodIsCalled()
{
$mock = $this->getMock('Object');
$mock->expects($this->once())
->method('someMethod');
$mock->someMethod();
}
}
上面的死亡与一个错误:
Fatal error: Call to undefined method Mock_Object_204ac105::someMethod()
我确信有一种方法可以做到这一点,而不必编写一个实际上有someMethod()
方法的类?
当您通过$this->getMock()
创建mock时,您必须设置该数组中应该可用的方法,因此此代码应该有效:
$mock = $this->getMock('Object', ['someMethod']);