Управляемые данными модульные тесты с помощью MSTest - PullRequest
2 голосов
/ 23 февраля 2009

Я работаю над проектом, который использует MSTest для модульного тестирования, и мне нужно написать несколько модульных тестов для класса модели, который достаточно тесно связан с источником данных. Мы поддерживаем исходный код для базы данных, от которой зависят классы модели в проекте базы данных (.dbproj). Я думал о том, чтобы написать в своем тестовом классе метод ClassInitialize, который использует проект базы данных для программной сборки экземпляра нашей базы данных SQL CE, который я затем мог бы заполнить данными, к которым я мог бы подключить свой класс модели, и выполнить с ним тесты с известными данными.

Я открыт для других предложений, если они есть у кого-либо.

То, что я пытаюсь выяснить, как это сделать, это запустить этот проект базы данных из кода в моем методе ClassInitialize. Я не смог найти хороших примеров того, как сделать что-то подобное. Это возможно? Если так, то как? У кого-нибудь есть пример кода? Спасибо.

Ответы [ 3 ]

2 голосов
/ 23 февраля 2009

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

Если вы попытаетесь выполнить модульное тестирование своего уровня данных, вас ждет мир боли. Я предлагаю вам пропустить это и попытаться устранить любые ошибки уровня данных во время интеграционного тестирования.

Тем не менее, если вы используете LINQ to SQL, я наткнулся на эту статью на днях, которая показывает, как смоделировать хранилище LINQ to SQL. Требуется дополнительная работа, чтобы заставить его работать, но это может быть полезно для вас.

0 голосов
/ 10 марта 2009

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

Я сделал очень подробное описание техники, которую я использовал (w / MS Test) здесь

0 голосов
/ 23 февраля 2009

Возможно, вам стоит заняться издевательством - moq - хорошее место для начала. По сути, имитация - это создание инфраструктуры, которая олицетворяет зависимости в вашем коде для помощи в тестировании.

...