принимать продукты, их наличие на складах.
если продукт есть, то просто обновляю его цены и наличие (по партиям: на разных складах - разные)
если продукта нет, то создаю его и создаю партии продуктов
вот мне нужно все эти кейсы протестировать, что бы корректно сохраняло.
как я вижу варианты:
1. мокать модели, и проверять, что модели сохранились и были вызваны соответствующие методы (create / update)
2. создаю отдельный sql файл. и в нем описываю данные для 3х таблиц (продукты, склады, партии продуктов) - скармливаю этот файл mysql-ю
до и после выполнения каждого теста.
2-й вариант я боюсь, в перспективе раздует тесты до нескольких часов + поддержка фикстур, это трындец как затратно будет.
1-й вариант - я боюсь, что тесты будут не надежные. и например, как протестировать корректно то, что правильно сохранились отношения между моделями?
Это все feature
ну, почему feature? если я тестирую конкретные методы в контроллерах, и мокаю route / request
Вот тут уже есть вариации: 1. Если у тебя есть репозиторий или какой то сервис, который занимается раскладкой, то можно замокать сервис и проверить что этот сервис запустил процесс и отедльно покрыть тестами этот сервис
Ты работаеш с базой 1 зачем ты мокаеш request ? 2
ну, параметры, которые приходят через rest-api
Делай прямой запрос без мока это гарантирует что все ок
не, не выносил в сервис. логика в контроллере, пока что. т.к. она не большая сейчас.
Используй фабрики для этого // подготовка данных $supplier = factory(Supplier::class)->create(); $supplier->products()->saveMany(factory(SupplierProduct::class, 5)->make()); // действие // create // update // delete // проверка // created // updated // deleted Но заливать sql файл или проверять что был update у model это жесть конечно.
Базу mkb10 только sql и заливать
Обсуждают сегодня