Могу ли я принудительно выполнить модульное тестирование свойств с помощью среды модульного тестирования Visual Studio? - PullRequest
0 голосов
/ 11 декабря 2010

Я работаю над проектом C # 3.5 с использованием Visual Studio 2008, где у меня есть несколько объектов, которые необходимо сериализовать (они реализуют IXmlSerializable).При написании модульных тестов для моего кода сериализации я хотел бы убедиться, что при добавлении нового свойства в мои сериализуемые объекты я получу уведомление, если сериализация и десериализация нового свойства не тестируется ни в одном из моихмодульные тесты.(Через какой-то неудачный юнит-тест)

Возможно ли это?Я бы подумал, что если есть специальный атрибут, которым я могу пометить свои свойства, это позволит инфраструктуре модульного тестирования Visual Studio знать, что ее нужно протестировать.

Или мой подход к этому совершенно неосновательный?При необходимости я мог бы перейти на другую платформу модульного тестирования.

1 Ответ

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

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

Если вышеописанная опция невозможна, вы можете попробовать создать отчет о покрытии (обычно это в формате xml), а затемнаписать простой инструмент, чтобы убедиться, что ваши классы полностью протестированы.Я думаю, что будет действительно трудно заставить это работать, и я не уверен, что это стоит усилий.Насколько я знаю, нет лучшего способа проверить, было ли вызвано свойство.

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