Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top