Я работаю в компании, где мы стремимся к 80% охвату кода, в целом мы тестируем в основном End-2-End, с базой данных и поддельными внешними вызовами, мы используем SQLite, чтобы наш набор тестов мог быстро работать в локальной среде.Когда этот случай имеет смысл, мы проводим его модульное тестирование, например, налоговую службу, которую я оказал для разных стран, в которой я проводил модульное тестирование, потому что она основывалась на исходных данных.
Почему мы предпочитаем End-2-End:
- Это быстрее, если вам не нужно производить юнит, интеграцию и тестирование от конца до конца
- Вы проверяете, что конечная точка будет фактически использоваться
- Я предпочитаюработать с реальной базой данных, если вы работаете с непрерывной интеграцией
Есть недостатки с SQLite, в основном он не работает как другая RDB, где есть много настроек и ограничений, поверх моей головыу меня были проблемы с применением внешнего ключа и т. д.
Итак, чтобы ответить на ваш вопрос:
- Разумно использовать SQLite хотя бы локально
- В модульном тестировании вы толькотестируя один класс и высмеивая все остальное, вы в основном проверяете, что код может выполняться.Обратите внимание, что это упрощенная версия на очень сложную тему.