我知道標(biāo)題使這看起來與常見問題非常相似。這不是同一個問題。在我的 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()在它之后進(jìn)行鏈接。我不知道是什么導(dǎo)致了這個問題,而且谷歌搜索這個錯誤非常困難,因?yàn)橛泻芏嗳藛枮槭裁此麄兊哪M方法會返回null(因?yàn)樗麄儧]有鏈接->willReturn().有什么見解嗎?PHP 7.0拉維爾 5.3PHPUnit 5.7
1 回答

Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊
像往常一樣,我終于在發(fā)布 StackOverflow 問題后立即找到了答案。
碰巧的是Request
,Laravel 中的對象包含一個名為method()
. 這是 PHPUnit 的一個已知問題。如果您正在模擬的類實(shí)現(xiàn)了一個名為 的方法method()
,您可以通過expects()
首先鏈接來解決這個問題:
$this->mockedRequest-->expects($this->any())->method('getClientIp')->willReturn('geralt.of.rivia');
- 1 回答
- 0 關(guān)注
- 94 瀏覽
添加回答
舉報
0/150
提交
取消