Модульное тестирование уровня доступа к данным - тестирование методов обновления? - PullRequest
2 голосов
/ 15 мая 2009

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

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

Есть ли рекомендуемый подход к тому, как проводить модульное тестирование в таком сценарии? Мне трудно думать о тесте, который не будет зависеть от других методов.

Ответы [ 4 ]

3 голосов
/ 15 мая 2009

Сначала протестируйте метод, который читает данные из базы данных.

Затем вы можете вызвать функцию обновления и использовать функцию, которая была протестирована выше, чтобы убедиться, что значение, которое было обновлено, является правильным.

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

Если ваши вспомогательные функции находятся в базе данных (хранимые процедуры или функции), просто сначала протестируйте их с помощью DatabaseUnitTest, а затем протестируйте код Visual Basic.

0 голосов
/ 15 мая 2009

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

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

0 голосов
/ 15 мая 2009

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

0 голосов
/ 15 мая 2009

Я бы просто использовал метод поиска для проверки правильности обновления данных.

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

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