我有一个类我有一个想要模拟的方法,但是我很难让phpunit合作。
一个例子:
/**
* @test
*/
public function mockTest() {
$mock = $this->getMock('ApiMock', array ('search'));
$mock->expects($this->once())
->method('search');
$mock->search('test');
$mock->somethingElse('another test');
}
使用这个课程:
class ApiStub {
public function search($var) {
return $var;
}
public function somethingElse($var) {
return $var;
}
}
引发以下错误:
PHP Fatal error: Call to undefined method Mock_ApiMock_14fd352a::somethingElse()
我希望能够模拟search()函数,但仍然有一些东西()做它常见的东西。
答案 0 :(得分:1)
对于任何有类似问题的未来人。
问题是ApiStub与测试用例位于同一个文件中,而这个测试用例恰好位于命名空间中。我解决了这个问题:
$mock = $this->getMock('namespace\subnamespace\ApiMock', array ('search'));