【发布时间】:2019-06-29 04:39:37
【问题描述】:
问题是我正在模拟的依赖项有一个expects() 方法。这个类依赖于我正在测试的类。
setUp() 方法
$this->test = $this->getMockBuilder(Request::class)->disableOriginalConstructor()
->getMock();
所以当我写测试时
$this->test->expects($this->once())->method('otherMethod')
->willReturn(0);
这会报错:
无法在 ... 中重新声明 Mock_Test_f21c25ee::expects()
我该如何解决这个问题?
编辑:
在我使用setMethodsExcept() 尝试了建议的解决方案后,我现在收到了不同的错误消息。我也在使用 PHPunit 7.5
声明 Mock_Test_fa1cb6c5::expects(PHPUnit\Framework\MockObject\Matcher\Invocation $matcher) 应该与 App\Services\Api\Test::expects() 兼容
注意:忘了说我使用的是 Laravel 5.5,它有自己的 TestBase 类
Edit2:在我尝试使用默认的 PHPUnit 测试用例后,我仍然收到与上面相同的错误消息。 (必须与错误兼容)
【问题讨论】: