Intereting Posts

Тестирование фасадов Laravel с издевательством всегда проходит, даже если это не удается

Я пытаюсь издеваться над некоторыми фасадами в 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 без какой-либо настройки?