我正在嘗試爲幾個控制器操作編寫phpunit測試。一切似乎都很好,除了嘲笑密碼外觀。嘲諷Laravel 4中的密碼門面
其中一個動作(「忘記密碼」)是這樣的:
if (Auth::check())
//return a redirect since the user is already logged in
switch ($response = Password::remind(Input::only('email')))
{
case Password::INVALID_USER:
//return a redirect with error messages
case Password::REMINDER_SENT:
//return a redirect with success message flushed
}
兩個驗證和密碼是門面,默認配備了Laravel。
測試Auth::check()
部分工作得很好:
Auth::shouldReceive('check')->
once()->
andReturn(false); //or true depending on my test case
但是,當我嘗試Password::remind()
同樣嘗試把它不起作用:
Password::shouldReceive('remind')->
once()->
andReturn(Password::INVALID_USER);
我得到「SQLSTATE訪問被拒絕」異常這意味着應用程序正試圖訪問數據庫。
我也嘗試添加with(array())
到我的測試,甚至綁定Mockery::mock('\Illuminate\Auth\Reminders\PasswordBroker')
- 這一切都沒有幫助。
如何測試此控制器的動作?爲什麼密碼外觀與Auth不同?我還應該嘗試什麼?
謝謝