Эффективно протестировать базу данных - PullRequest
2 голосов
/ 22 ноября 2011

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

Пока я выучил:

  • проверка способности приложения помещать / извлекать данные в базу данных
  • использование фиктивных БД для проверки кода отображения объекта / отношения

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

begin a transaction
insert a few rows
check that no error has occurred
'select' the rows back out
check that no error has occurred, check that data out matches data in
tell the test framework that it's successful
abort the transaction

Это лучшая практика или какой-то ужасный анти-паттерн? Есть лучшие предложения?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

Ваш пользователь определенно не должен видеть ваши тестовые данные, потому что тестирование на производстве - очень плохая практика!Вы должны попытаться создать тестовую среду и провести там тестирование.

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

Использование транзакций в тестовой базе данных не является плохой практикой, поскольку вы можете подтвердить вещи, а затем откатить транзакцию, ноЯ был бы обеспокоен тем, что вы собираетесь вызывать код, который будет фиксироваться в базе данных, тем самым изменяя параметры для следующих тестов.Конечно, если ваша БД поддерживает вложенные транзакции, это не имеет большого значения, но ISTM делает это не во всех БД.

0 голосов
/ 26 мая 2016

Да, у нас должно быть 3 разных среды, таких как dev, qa и производственная среда.Вы не должны играть с производственными данными, потому что иногда данные реплицируются в некоторые распределенные базы данных, и если вы не знаете о репликации, это создаст ненужные проблемы.

~ Темрузинн

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