Laravel assertDatabaseMissing странное поведение - PullRequest
0 голосов
/ 11 декабря 2018

Это мой код (тест).В этом методе нет другого кода:

$this->withoutMiddleware();  
$fc = factory(\App\Models\FaqCategory::class)->create();
$response = $this->delete('/admin/faq-categories/'.$fc->id);
$response->assertStatus(302);
$response->assertRedirect('/admin/faq-categories/');
$this->assertDatabaseMissing('faq_categories', ['id' => $fc->id]);

Я понятия не имею, почему, но последнее утверждение не выполняется, даже если строка не существует в базе данных.Объект был удален в 3-й строке, но 6-я строка все равно не работает.

РЕДАКТИРОВАТЬ: Я понял это.Я использую привязку модели в моих контроллерах, поэтому я не могу просто поместить $ this-> безMiddleware () в тест, потому что привязка модели маршрута не будет работать (что-то должно быть сделано в промежуточном программном обеспечении).

1 Ответ

0 голосов
/ 03 марта 2019

Была такая же проблема, либо это зависит от того, что поддерживает ваш драйвер БД, а не (каскад не поддерживается sqlite и т. Д.), Или это так же просто (и глупо, как это было в моем случае), что элемент был мягкимудалено.

см.

ТЕСТ УРОВНЯ LARAVEL - напротив seeInDatabase

https://laracasts.com/discuss/channels/laravel/super-weird-test-failure

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...