我知道标题使这看起来与常见问题非常相似。这不是同一个问题。在我的 Laravel 测试套件中,我试图模拟Illuminate\Http\Request对象以getClientIp返回特定值:$this->mockedRequest = $this->createMock(Request::class);
$this->mockedRequest->method('getClientIp')->willReturn('geralt.of.rivia');但是,上面的代码行给我以下错误:Call to a member function willReturn() on null换句话说,PHPUnit mockmethod()方法本身就是返回 null,显然不可能->willReturn()在它之后进行链接。我不知道是什么导致了这个问题,而且谷歌搜索这个错误非常困难,因为有很多人问为什么他们的模拟方法会返回null(因为他们没有链接->willReturn().有什么见解吗?PHP 7.0拉维尔 5.3PHPUnit 5.7
1 回答
Helenr
TA贡献1780条经验 获得超3个赞
像往常一样,我终于在发布 StackOverflow 问题后立即找到了答案。
碰巧的是Request
,Laravel 中的对象包含一个名为method()
. 这是 PHPUnit 的一个已知问题。如果您正在模拟的类实现了一个名为 的方法method()
,您可以通过expects()
首先链接来解决这个问题:
$this->mockedRequest-->expects($this->any())->method('getClientIp')->willReturn('geralt.of.rivia');
- 1 回答
- 0 关注
- 69 浏览
添加回答
举报
0/150
提交
取消