Symfony PHPUnit mocking:错误:调用未定义的方法PHPUnit_Framework_MockObject_Builder_InvocationMocker :: someMethod

时间:2018-01-13 14:52:38

标签: symfony testing mocking phpunit

我的代码:

public function testApiClient()
{
    $mock = createMockApiClient();
    dump($mock->someMethod());
}

protected function createMockApiClient()
{

    $mockApiClient = $this->createMock(ApiClient::class);
    return $mockApiClient
        ->expects($this->any())
        ->method('someMethod')
        ->will($this->returnValue('someString'))
    ;
}

所以我有这个错误:

Error: Call to undefined method 
PHPUnit_Framework_MockObject_Builder_InvocationMocker::someMethod()

我是PHPUnit测试的新手,那该怎么办?我无法理解为什么我在例子中写的没有结果 - 只是错误?

1 个答案:

答案 0 :(得分:0)

所以我开始在谷歌搜索。奇怪:没有人回答。在PHPUnit上搜索Github存储库没有得到任何解决方案,甚至提示如何解决问题。

经过多次尝试后,我!发现!方法will返回PHPUnit_Framework_MockObject_Builder_InvocationMocker类,如果我只是在will分号后写,然后返回{{ 1}}它返回$mockApiClient

所以你必须完成构建你的模拟,然后才返回它。