Как проверить членство asp.net, профиль, роли с VS Test Framework? - PullRequest
2 голосов
/ 16 апреля 2009

Мы получаем некоторые ошибки, если пытаемся что-то протестировать с помощью структуры членства asp.net. Кажется, что он не может создать экземпляр среды членства asp.net и поэтому не может получить доступ ко всем профилям, пользователям и т. Д.

Кто-нибудь видел подобную проблему? Или у кого-то работает?

Ура, Стив

Ответы [ 3 ]

1 голос
/ 16 апреля 2009

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

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

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

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

0 голосов
/ 16 апреля 2009

Исходя из ответа Бенрика - я рекомендую вам взглянуть на проект ASP.NET MVC - в нем есть примеры интерфейсов и оболочек, которые вам могут понадобиться чтобы правильно устройство проверить ваш код.

Как комментарии в состоянии файла AccountController.cs:

Тип FormsAuthentication запечатан и содержит статические члены, поэтому трудно выполнить код модуля, который вызывает его члены. Приведенный ниже интерфейс и вспомогательный класс демонстрируют, как создать абстрактную оболочку вокруг такого типа, чтобы сделать тестируемый модуль кода AccountController

.
0 голосов
/ 16 апреля 2009

Тестовая среда просматривает файл web.config тестового проекта, который, вероятно, не имеет правильной конфигурации. Вы должны действительно написать интерфейсы вокруг провайдеров аутентификации / членства и написать несколько фиктивных реализаций для тестирования.

...