Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Пишу юнит-тесты, использую SQLite-in-memory и RefreshDatabase-трейт.
Перед началом теста на пустую базу накатываются миграции.
Я записываю какие-то данные в модели и хочу проверить, что при следующей загрузке страницы они будут извлечены, как надо.
$this->refreshApplication();
Создался новый app, все сервисы пересоздались по новой, всё чистое.
Но теперь при запросах пишет, что нужных таблиц нет.
То есть, новый app, видимо потерял связь с нужной базой и у него она чистая.
$this->refreshDatabase();
Так по новой накатываются миграции, таблицы есть, но данных, которые я туда записывал уже нет.
Как решить?
Не в сети
ты скорее всего упускаешь что-то где говоришь про "следующую загрузку страницы". то есть если ты используешь browser testing (aka dusk)
то тебе не нужно делать
$this->refreshApplication()
Но я так думаю ты не используешь dusk. а делаешь обычные тесты на http уровне. если так, тебе нужно сделать что-то вроде
// объялвешь какие-то начальные данные с которыми будешь работать
$someModel = SomeModel::create([]);
// делаешь запрос
$response = $this->post($url, $params);
$response->assertRedirect('some-url'); // этот тест удостверит тебя что приложение перешло на другую страницу
$someModel = $someModel->fresh();
// делаешь утверждение о том что данные в твоей модели поменялись так как считаешь нужным здесь
$this->assertEquals($someModel->value, $params['value']);
а чтоб не гадать, приложи код своего теста и расскажи что ты хочешь протестировать
я сегодня записал видео где работаю над приложением с использованием ТDD https://youtu.be/ZwtjfEtRL0s посмотри, многое должно проясниться
Пишу бэкенд для своего мобильного приложения, делюсь с миром, заходите посмотреть, много всего интересного https://youtu.be/C5M6-ycJ5gs
Не в сети
Страницы 1