Как тестировать запросы к БД, когда рассматриваемая схема БД имеет множество ограничений? - PullRequest
1 голос
/ 15 августа 2011

Справочная информация:

  • умеренная схема БД (около 70 таблиц)
  • с множеством внешних ключей и другими ограничениями (не нулевыми и т. Д.) Между ними
  • общая база данных для всех тестов
  • некоторая простая логика разрыва, которая обрезает «затронутые» таблицы после каждого теста и помещает туда все, что было до теста
  • БД запрашивается с помощью JPA / Hibernate / Toplink или другого решения для объектно-реляционного отображения

Теперь, большая проблема в том, что мы хотим добавить некоторые записи в БД, теперь мы должны сделать это вручную, то есть с помощью сценариев sql (которые выполняются до рассматриваемого теста). Это приводит к проблеме Mystery Guest почти в каждом тесте, который мы имеем.

Как бы вы справились с этим?

Мои мысли таковы:

  • создание нового прибора для каждого теста было бы излишним, поскольку у нас действительно много ограничений
  • альтернативой может быть создание какого-либо оракула, который, учитывая заглушку объекта, вернул бы объект, готовый для помещения в БД, то есть такой, который не нарушает никаких ограничений. Это хорошее решение, конечно, не очень нравится нашим менеджерам, так как нам пришлось бы потратить немного времени на создание такого зверя.
...