Модульное тестирование SiteMapNode - PullRequest
4 голосов
/ 19 ноября 2008

Кто-нибудь знает, как выполнить модульное тестирование SiteMapNode? Мы создаем несколько пользовательских элементов управления навигацией, которые отображают неупорядоченные HTML-списки из Карт сайта с пользовательскими атрибутами.

Я пытаюсь следовать тестовому подходу, но обнаружил, что SiteMapNode имеет внутренние зависимости от HttpContext. Чтобы просмотреть файл карты сайта, он использует виртуальный путь для поиска файла карты сайта.

У меня есть карта сайта, с которой я хотел бы протестировать, но я не хочу создавать свою среду модульного тестирования в веб-проекте (!)

Есть предложения? Дразнящий? Переопределение соответствующих членов?

Ответы [ 2 ]

2 голосов
/ 20 ноября 2008

Довольно скучный вопрос, поэтому неудивительно, что он не получил ответа! Для всех, кто может столкнуться с этой проблемой, вот мое предпочтительное решение:

Я нашел лучший способ справиться с этим - загрузить карту физического сайта в XML-документ. Затем у меня есть NavigationNodeFactory, которая проверяет и создает свое собственное составное дерево NavigationNode из документа xml.

Мой класс NavigationNode настолько самоуверен, насколько мне нравится, и обходит проблемы, обнаруженные мной с SiteMap и SiteMapProvider, а именно плохую тестируемость для разработчиков.

0 голосов
/ 20 ноября 2008

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

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

Затем вы можете иметь SiteMapNodeProvider для среды выполнения, которая вызывает SiteMapNode для операций, и StubbedSiteMapProvider для ваших модульных тестов, которые передают значения ваших тестов пользовательским элементам управления.

...