我正在尝试为几个控制器操作编写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不同?我还应该尝试什么?
谢谢