Я пытаюсь издеваться над некоторыми фасадами в Laravel во время модульного тестирования, но кажется, что тесты всегда проходят независимо от того, что.
Например, этот пример, взятый из документации Laravel:
Event::shouldReceive('fire')->once()->with('foo', array('name' => 'Dayle'));
Кажется, я могу поместить это в любой из методов тестирования, и они всегда проходят, хотя ничего не было сделано с фасадом Event
.
Вот тестовый класс:
class SessionsControllerTest extends TestCase { public function test_invalid_login_returns_to_login_page() { // All of these pass even when they should fail Notification::shouldReceive('error')->once()->with('Incorrect email or password.'); Event::shouldReceive('fire')->once()->with('foo', array('name' => 'Dayle')); Notification::shouldReceive('nonsense')->once()->with('nonsense'); // Make login attempt with bad credentials $this->post(action('SessionsController@postLogin'), [ 'inputEmail' => 'bademail@example.com', 'inputPassword' => 'badpassword' ]); // Should redirect back to login form with old input $this->assertHasOldInput(); $this->assertRedirectedToAction('SessionsController@getLogin'); } }
Что мне недостает, чтобы проверить Фасады? Правильно ли я думаю, что я должен был бы называть shouldReceive()
на любом Laravel Facade без какой-либо настройки?