Как мне практиковать эффективный TDD с приложениями, которые предоставляют API и общаются с базой данных - PullRequest
0 голосов
/ 21 сентября 2019

Я склонен писать множество приложений, которые, скажем, будут представлять API для логики, которая будет вызывать другие API в рамках той же логики, а затем в конце сохранять некоторую форму данных в базе данных.Итак, другими словами, я склонен иметь вызов метода, который инкапсулирует вызов других API, обработку данных и затем сохранение их в базе данных.

Я знаком с TDD (разработка через тестирование), но я нахожу еготрудно практиковать, потому что последнее, что я хочу, - это сохранение бесполезных данных в производственной базе данных при выполнении обязательных тестов, а также вызов внешних API-интерфейсов, которые я не контролирую, и, в свою очередь, путаница с их базой данных.

Явероятно, смотрю на это неправильно.

Как мне практиковать эффективный TDD и избежать этой проблемы?

1 Ответ

1 голос
/ 21 сентября 2019

Как мне практиковать эффективный TDD и избежать этой проблемы?

Дизайн.

Грубо говоря, мы расположили наш код так, чтобы он представлял собой состав из двух модулей.flavors

  • Модули, которые легко тестировать
  • Модули, которые просты и стабильны

Таким образом, код, который фактически должен взаимодействовать с базой данных, должен бытьвторой тип;нет разветвлений, тривиальных операций, и, самое главное, его не нужно менять очень часто.

Код, который мы пишем, кажется рискованным по своей природе?это входит в модуль "легко проверить".Эти модули слабо связаны с их более простыми кузенами - должно быть легко заменить «тестовую» реализацию на «настоящую».Таким образом, вместо того, чтобы разговаривать с «базой данных» во время нашего тестирования, мы говорим с некоторыми в коллекции памяти, которая просто дает нам ответы в виде сценариев.

Короче говоря, мы упорядочиваем наш код так, чтобы было легко проверить, гдеошибки:

Что касается трудно проверяемых битов;ну, возможно, мы измеряем риски другими способами, или мы запускаем эти тесты с другой частотой, или мы откладываем их тестирование до функциональных тестов, или ...

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