Стоит ли работать с БД при интеграционном тестировании?
Добрый день, пытаюсь практиковаться писать интеграционные тесты.
Тестирую модуль веб приложения, CRUD операции.
И тут задался вопросом, стоит ли использовать бд для тестов или достаточно использовать моки для библиотеки которая работает с бд, а потом проверять был ли вызов ее метода или нет.
Ведь сторонняя библиотека покрыта тестами вдоль и поперек, и мне по сути незачем писать тесты с проверкой "добавилась ли запись в бд".
Как правильно подходить к этому вопросу, проверять все от и до, или не стоит покрывать тестами места, что уже покрыты unit тестами?
Интеграционные тесты должны проверять бизнес логику между, сервисами/компонентами и так далее.
Что запись добавляется в базу смысла нет проверять, если только там нет какой-то сложной логики, что по пути от веба до базы данные прошли кучу сервисов и очередей.
Ну смотрите. Ровно сегодня отловил ошибку. Изменил модель бд, ограничение по длине поля. Этаже модель использовалась в контроллере. Причём на тестах все прошло, а вот на запуске вижу ошибки. Так что поднимайте для тестом маленькую базу и прогоняйте абсолютно все ситуации с реальными данными, ну и тесты пишите по ошибкам в багтрекере.
Владимир Коротенко , спасибо, подскажите еще по теме, пожалуйста, отдельный вопрос задавать ради такого - только тостер засорять
Мне перед тестами нужно заполнить данными тестовую бд, как назвать этот "модуль" и в какой директории его правильно хранить?, (utils/tests)?
Получается для этого модуля тоже нужно писать unit тесты, верно ?
У меня огромная проблема с именованием и расположением (структурированием директорий), потому хочу узнать, где логичнее расположить и как назвать