Модульные тесты и проблемы внешнего ключа - PullRequest
1 голос
/ 18 апреля 2011

В настоящее время наши администраторы баз данных проектируют наши базы данных без определения внешних ключей, это позволяет команде разработчиков создавать модульные тесты для CRUD, нацеленные на каждую таблицу по отдельности.

Мы хотим, чтобы команда баз данных начала использовать внешние ключи в реальной БД, но мы также хотели бы сохранить нашу способность тестировать каждую операцию без необходимости создавать родительские строки.

Есть ли способ отключить ограничения внешнего ключа без изменения прав доступа к таблице?

Как вы справляетесь с ситуацией, в которой вы находитесь?

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

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

Мы также делаем это немного проще, используя базы данных в памяти для модульного тестирования, поэтому каждый тест становится еще более независимым.

0 голосов
/ 18 апреля 2011
   > ... we would also like to keep our ability to test each operation without 
   > having to create the parent rows.
   > Is there a way to disable foreign key constraints without having alter 
   > table permissions?

Нет , Вы не можете отключить ограничения внешнего ключа , но возможно, вы можете иметь Dummy-Parent-Objects в базе данных с идентификатором "-1", которые используются в ваших тестах. Ребенок-Предметы-Родители затем может ссылаться на "-1" пустышки

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