Визуальное тестирование Visual Studio 2010 - PullRequest
1 голос
/ 10 августа 2010

Я пытаюсь выяснить в модульном тестировании Visual Studio 2010, как сохранить транзакцию данных, которые я либо добавил, либо обновил, либо удалил во время моих тестов, чтобы на моем TestCleanup я мог откатывать их значения.

Какие условия поиска я должен использовать, чтобы узнать больше об этом?

Приветствия

Пол

Ответы [ 2 ]

3 голосов
/ 10 августа 2010

Зачем вам нужно откатить изменения? Ваши юнит-тесты обновляют живые данные? Если модульные тесты написаны правильно, вам не нужно выполнять очистку после того, что изменили ваши тесты, потому что изменяемые данные должны быть изолированы от вашего теста.

Edit:

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

Если это в источнике данных ADO.NET, вы можете начать транзакцию, а затем откатить эту транзакцию в конце теста. Например:

using (var transaction = db.BeginTransaction())
{
    // Do tests here
}
// The transaction is rolled back when disposed

Редактировать 2:

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

1 голос
/ 10 августа 2010

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

Если вы на самом деле тестируете вызовы к базе данных, то это, вероятно, интеграционный тест, и в этом случае вы можете:

  1. Создание тестовых данных в настройке
  2. Код прогона
  3. Подтверждение прохождения теста
  4. Удаление тестовых данных, вставленных в первый шаг
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...