我想测试一个对象的方法被调用。我想通过模拟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()
方法的类吗?
答案 0 :(得分:1)
当您通过$this->getMock()
创建时,您必须设置应该在mock中可用的方法数组,因此此代码应该有效:
$mock = $this->getMock('Object', ['someMethod']);