Руководство по модульному тестированию Visual Studio 2008 - PullRequest
1 голос
/ 13 апреля 2010

Существует ли какое-либо руководство по использованию разработки модульных тестов Visual Studio 2008? Я занимаюсь разработкой n-уровневого веб-приложения с использованием структуры сущностей. Моя проблема заключается в создании модульного теста для методов, которые вставляют или обновляют базу данных.

Ответы [ 2 ]

1 голос
/ 13 апреля 2010

Не создавайте модульные тесты, чтобы проверить, являетесь ли вы INSERTING или DELETING или делаете что-либо с базой данных.Там просто нет необходимости.Если вы используете ADO.NET или ORM, например, этот код будет проверен.Вы будете знать, что на самом деле он делает то, что говорит на жестяной банке.

Тестирование данных, хранящихся в базе данных, не является модульным тестом.Хороший вопрос по что делает юнит-тест, юнит-тест .Для вашего кода, который использует код вашей базы данных (DAL, ORM и т. Д.), Вы вставите фиктивные объекты (тест удваивается), что позволит остальной части вашего приложения полагать, что оно взаимодействует с базой данных,хотя на самом деле это не так.

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

0 голосов
/ 13 апреля 2010

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

Решение вашей проблемы - изменить код, чтобы можно было использовать объекты-заглушки или макеты.

Другой вариант - убедиться, что весь тестовый код выполнен внутри новой транзакции.

Если вы когда-нибудь начнете работать с EF 4.0, вы можете воспользоваться IObjectSet class .

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