[英]Error using Mockery/phpUnit in Laravel
我是一個新手開發人員,試圖為現有的laravel應用程序啟動測試套件,但我沒有測試經驗。 現在我只是試圖進行一些測試,以獲得一些信心和經驗來編寫更多實質性測試。 我正在嘗試測試一個模型上的關系(我意識到這不是一個非常明智的測試),並試圖創建一個模擬的模型對象(我也理解在sqlite數據庫的內存中做這個更好但是主要的這里的目標是測試控制器,但我不知道如何處理那里的身份驗證問題)。 我有以下簡單,愚蠢的測試:
public function testFoo()
{
$lead = m::mock('Lead');
$this->mock->shouldReceive('program')->once();
$this->assertEquals($lead->program_id, $lead->program->id);
}
但是我收到以下錯誤:
LeadTest::testFoo
BadMethodCallException: Received Mockery_0_Lead::getAttribute(), but no expectations were specified
我不明白這個錯誤試圖告訴我什么,我發現沒有幫助谷歌搜索問題或閱讀我能找到的文檔。
我假設我沒有設置預期的返回值,但這是一個相當普遍的測試,硬編碼預期的返回值似乎不對。 我在這里錯過了什么?
我只是測試一個Laravel關系,以確保我正確設置/實現了一些東西:
public function program()
{
return $this->belongsTo('Program');
}
問題是我錯過了預期的回報值。 應該是這樣的:
$this->mock->shouldReceive('program')->once()->andReturn(someObjectOrValue);
斷言應該是這樣的:
$this->assertEquals(someObjectOrValue, $lead->program->id);
Mockery文檔比我原先想象的要冗長得多。 http://docs.mockery.io/en/latest/reference/expectations.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.