Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Тестирование базы данных (.NET)

5
15 июня 2008 года
hardcase
4.5K / / 09.08.2005
Существует небольшой пока проект, ориентированный на веб (ASP.NET).
Занимаюсь разработкой базового функционала - база данных, обертка данных в объекты (не использую NHibernate или другие ORM-ы - иду своим путем).

Во время написания юнит тестов (NUnit - он самый;) возникает проблема, связанная с сохраняемостью состояния системы в самой БД, а это очень мешает повтороному прогону тестов (красная линия - зеленая линия - рефакторинг)

Mock-объекты в моем случае не катят, мне нужно тестировать функционал в хранимых процедурах и ограничения таблиц.

Кто как решает эту проблему?

Блокировать изменения состояния в принципе можно используя транзакции (TestCase обернуть в транзакцию, после прохождения ее откатить). Но тогда интересует начальное формирование базы данных и очистка ее после работы тестов - не в каждом тесте удобно откатывать транзакцию.


P.S. Сейчас курю Джимми Нильсона "Применение DDD ...", там где про РПТ и базы данных.
63
15 июня 2008 года
Zorkus
2.6K / / 04.11.2006
Ну как бы, очевидный вопрос..что за СУБД-то? :)
Тестирование, профайлинг и отладка хранимых процедур - это по-моему, делается средствами, предоставляемыми поставщиком СУБД.
5
15 июня 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Zorkus
Ну как бы, очевидный вопрос..что за СУБД-то? :)
Тестирование, профайлинг и отладка хранимых процедур - это по-моему, делается средствами, предоставляемыми поставщиком СУБД.

MsSQL 2005. Гммм. Хранимок много и просто так их не потестируешь, просто рисуя скрипт - неэффективно. К тому же использую механизм провайдеров данных и в будущем планируется переползать на другие СУБД, отсуюда следует что тестирование хранимок с привязкой к СУБД совсем не катит.

На мой взгляд тестирование должно быть на более высоком уровне - там где я оперирую высокоуровневыми объектами.

P.S Кстати, хранимки у меня выглядят как абстрактные методы специализированных классов (с однозначным мапингом аргументов), а вертают строго типизированные объекты или коллекции этих объектов.

63
15 июня 2008 года
Zorkus
2.6K / / 04.11.2006
Так процедуры на шарпе написаны?
5
15 июня 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Zorkus
Так процедуры на шарпе написаны?


Нет конечно. T-SQL.
Это просто интеграция их в C# такая. У меня компилятор специальный занимается кодогенерацией вызова хранимок.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог