Поделиться через


Модульные тесты для веб-служб ASP.NET

Между модульными тестами для классов и для веб-служб ASP.NET существуют некоторые различия. Важнее всего, что проект должен содержать ASPX-файл. Данный раздел объясняет, как это сделать, а также описывает, что происходит в тестовом проекте при создании модульного теста для веб-службы ASP.NET.

Дополнительные сведения о порядке запуска тестов производительности веб-сайтов см. в разделе Практическое руководство. Создание и изменение веб-тестов производительности. Дополнительные сведения о модульных тестах для классов см. в разделе Практическое руководство. Создание и выполнение модульного теста.

Обязательные условия

Убедитесь, что установлены следующие компоненты IIS.

Совместимость метабазы IIS 6 и совместимость конфигурации IIS 6

Проверка наличия в проекте ASPX-файла

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

Добавление ASPX-файла

  1. В Обозревателе решений щелкните правой кнопкой мыши проект, содержащий веб-службу ASP.NET, последовательно выберите Добавить, Новый элемент.

  2. В диалоговом окне Добавление нового элемента в разделе Установленные шаблоны выберите Веб.

  3. В списке веб-шаблонов выберите Форма Web Form и щелкните Добавить.

Три новых файла будут добавлены в проект: WebForm1.aspx, WebForm1.aspx.cs и WebForm1.aspx.designer.cs. Эти файлы не требуется изменять или использовать.

Что происходит при создании модульного теста для веб-службы ASP.NET

На следующем рисунке показан метод теста, создаваемый для простого проекта веб-службы ASP.NET. Сведения о более общих изменениях, которые происходят при создании модульного теста, см. в разделе Составляющие модульного теста.

Метод модульного теста ASP.NET

Метод модульного теста ASP.NET

  1. Все модульные тесты создаются с атрибутом [TestMethod ()].

  2. Атрибут [Host Type ()] задает адаптер, в котором будет выполняться модульный тест. Этот атрибут не нужно изменять.

  3. Атрибут [AspNetDevelopmentServerHost()] задает настройки, используемые, когда хост-сервером теста является ASP.NET Development Server. Этот атрибут включается только в случае, если веб-служба ASP.NET выполняется в файловой системе, а не в процессе IIS. Этот атрибут не нужно изменять.

  4. Атрибут [UrlToTest()] задает URL-адрес веб-службы ASP.NET модульного теста.

  5. Остальное представляет собой тело метода теста. Возможно, вам понадобится инициализировать переменные и изменить утверждения в методе теста.

Примечание

Дополнительные сведения об описанных здесь атрибутах см. в разделе

Microsoft.VisualStudio.TestTools.UnitTesting.

При работе в Windows Vista следует запускать Visual Studio от имени администратора

При работе с Windows Vista для выполнения модульных тестов ASP.NET необходимо запустить Visual Studio от имени администратора. При запуске Visual Studio от имени обычного пользователя можно создавать веб-узлы, создавать и выполнять тесты, однако они завершатся ошибкой. Чтобы запустить Visual Studio от имени администратора, щелкните правой кнопкой мыши пункт Microsoft Visual Studio 2010 в меню Пуск и выберите команду Запуск от имени администратора.

При запуске IIS от имени нестандартного пользователя убедитесь, что включены все необходимые разрешения

При создании веб-службы ASP.NET вы выбираете расположение — Файловая система, HTTP или FTP. Если выбрать расположение "Файловая система", то будет использован процесс ASP.NET Development Server. При выборе HTTP или FTP используется процесс IIS.

Если веб-служба ASP.NET запускается в процессе IIS, можно выбрать выполнение модульного теста от имени нестандартного пользователя, в целях безопасности. Нестандартный пользователь — это другое удостоверение процесса.

Например, если веб-службе ASP.NET требуется доступ к ресурсам на компьютере, таким как папки, файлы и базы данных, можно запустить ее таким образом, чтобы обеспечить только необходимый уровень прав доступа к этим ресурсам.

Если веб-служба требует разрешения, отсутствующего у нестандартного пользователя. модульный тест может завершиться ошибкой. Например, процесс ASP.NET, работающий от имени нестандартного пользователя, может иметь ограниченный набор прав доступа, но все равно будет пытаться создавать временные файлы в папке %WINDIR%\Temp. Это приведет к сбою, если разрешения, установленные для папки %WINDIR%\Temp, не обеспечивают процессу достаточный уровень доступа для создания этих файлов. Для успешного модульного тестирования нужно будет предоставить процессу более высокий уровень доступа к папке %WINDIR%\Temp.

См. также

Ссылки

Microsoft.VisualStudio.TestTools.UnitTesting

Основные понятия

Практическое руководство. Создание и выполнение модульного теста

Составляющие модульного теста