Я хочу написать модульные тесты с помощью NUnit, которые попадают в базу данных. Я хотел бы иметь базу данных в согласованном состоянии для каждого теста. Я думал, что сделки позволит мне "отменить" каждый тест, так что я искал вокруг и нашел несколько статей из 2004-05 по теме:Как проверить код, связанный с базой данных с NUnit?
- 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-операций afte r каждый тест выполняется.
Это замечательно, но ...
- ли эта функция существует где-то в NUnit изначально?
- Была ли эта техника улучшена за последние 4 года?
- Это еще лучший способ проверить код, связанный с базой данных?
Edit: это не то, что я хочу, чтобы проверить мои DAL конкретно, это более, что я хочу, чтобы проверить части моего кода, которые взаимодействуют с базой данных. Чтобы эти тесты были «без касания» и повторяемы, было бы здорово, если бы я смог сбросить базу данных после каждого из них.
Кроме того, я хочу облегчить это в существующий проект, в котором сейчас нет места для тестирования. По этой причине я не могу практически создать базу данных и данные с нуля для каждого теста.
К сожалению, этот подход не применим для моих проектов (сотни таблиц, процедур, концертов данных). Это слишком высокое трение, чтобы оправдать существующий проект. – 2008-11-26 16:11:35
Но ваши юнит-тесты должны быть разбиты на более мелкие, более сфокусированные классы, которые не касаются всех таблиц. Вам нужно иметь дело только с таблицами, которые затрагивает этот конкретный класс. – tvanfosson 2008-11-26 16:13:44