Справочная информация:
- умеренная схема БД (около 70 таблиц)
- с множеством внешних ключей и другими ограничениями (не нулевыми и т. Д.) Между ними
- общая база данных для всех тестов
- некоторая простая логика разрыва, которая обрезает «затронутые» таблицы после каждого теста и помещает туда все, что было до теста
- БД запрашивается с помощью JPA / Hibernate / Toplink или другого решения для объектно-реляционного отображения
Теперь, большая проблема в том, что мы хотим добавить некоторые записи в БД, теперь мы должны сделать это вручную, то есть с помощью сценариев sql (которые выполняются до рассматриваемого теста).
Это приводит к проблеме Mystery Guest почти в каждом тесте, который мы имеем.
Как бы вы справились с этим?
Мои мысли таковы:
- создание нового прибора для каждого теста было бы излишним, поскольку у нас действительно много ограничений
- альтернативой может быть создание какого-либо оракула, который, учитывая заглушку объекта, вернул бы объект, готовый для помещения в БД, то есть такой, который не нарушает никаких ограничений.
Это хорошее решение, конечно, не очень нравится нашим менеджерам, так как нам пришлось бы потратить немного времени на создание такого зверя.