Я хочу написать модульные тесты с помощью NUnit, которые попадают в базу данных. Я хотел бы иметь базу данных в согласованном состоянии для каждого теста. Я думал, что транзакции позволят мне "отменить" каждый тест, поэтому я обыскал и нашел несколько статей с 2004-05 по теме:
- http://weblogs.asp.net/rosherove/archive/2004/07/12/180189.aspx
- http://weblogs.asp.net/rosherove/archive/2004/10/05/238201.aspx
- http://davidhayden.com/blog/dave/archive/2004/07/12/365.aspx
- http://haacked.com/archive/2005/12/28/11377.aspx
Кажется, что они устраняют возможность создания настраиваемого атрибута для NUnit, который создает возможность отката DB-операций после выполнения каждого теста.
Это здорово, но...
- Эта функция существует где-то в NUnit изначально?
- Была ли эта техника улучшена за последние 4 года?
- Это лучший способ проверить код, связанный с базой данных?
Изменить: это не то, что я хочу проверить свой DAL конкретно, это больше, что я хочу проверить фрагменты моего кода, которые взаимодействуют с базой данных. Чтобы эти тесты были "без касания" и повторяемы, было бы здорово, если бы я мог reset базу данных после каждого из них.
Кроме того, я хочу облегчить это в существующий проект, в котором сейчас нет места для тестирования. По этой причине я не могу практически script создать базу данных и данные с нуля для каждого теста.