Добавление модульного тестирования в существующее приложение веб-форм asp.net - PullRequest
5 голосов
/ 26 июня 2009

У меня есть приложение asp.net webforms, в которое я хотел бы добавить модульное тестирование, но точно не знаю, как это сделать.

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

Какие методы я должен тестировать?

Как мне обращаться с базой данных и тестовыми данными?

Существуют ли какие-либо инструменты, которые могут помочь в этом?

Ответы [ 4 ]

5 голосов
/ 26 июня 2009

Первое, что вам нужно решить: Какова ваша мотивация для добавления юнит-тестов?

Существует множество веских причин для проведения юнит-тестов (я сам строго практикуюсь в TDD), но знание того, какой из них является основной движущей силой в вашем случае, должно помочь вам решить, какие тесты писать первыми.

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

Большой опыт показывает, что, когда программное обеспечение изначально было написано без модульных тестов, впоследствии может быть сложно модифицировать модульные тесты. Эффективная работа с устаревшим кодом предоставляет ценные рекомендации о том, как сделать тестируемые проекты не тестируемыми.

1 голос
/ 13 января 2010

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

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

1 голос
/ 26 июня 2009

Скорее всего, я бы протестировал методы поддержки, которые вызывают ваши веб-формы (минуя проверку форм), это позволит вам проверить логику и доступ к данным.

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

0 голосов
/ 03 декабря 2010

Что касается инструментов, я тоже ищу способ протестировать приложения веб-форм ASP.NET. Для частей модели (доступ к данным и т. Д.) Я использую NUnit, локальный sql express db, и написал код для создания схемы (из проверяемого нами файла .sql) до запуска всех тестов.

Между тестами я использую расширение NUnit DataRollback для отката любых изменений в БД после каждого запуска.

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

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