ASP.NET Web API 2 Unit Tests

ASP.NET Web API 2 Unit Tests

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Всем привет. Технология ASP.NET набирает обороты и довольно часто автоматизаторам приходится сталкиваться с задачей написания юнит тестов для API. Поэтому, уделю немного вниманию руководству, как создать простые модульные тесты для вашего приложения Web API 2. Для этого нам понадобится Visual Studio 2013 или Visual Studio Express 2013 для Web. Пойдем по порядку и сначала создадим простое приложение.

Создание приложения с проектом для юнит тестов

Создайте новое приложение – ASP.NET Web Application и назовите его, например, StoreApp.

api_testing-1

В окне New ASP.NET Project, выберите пустой шаблон – Empty и добавьте ссылку Web API. Также выберите опцию Add unit tests. Имя оставьте без изменения – StoreApp.Tests.

api_testing-2

После создания приложения, можно заметить, что оно состоит с двух проектов.

api_testing-3

Настройка приложения Web API 2

В новосозданном проекте StoreApp добавьте класс Product.cs в директорию Models. Скопируйте в нее следующий код.

Сбилдите проект.

Нажмите правой кнопкой на папке Controllers и выберите Add и New Scaffolded Item. Выберите Web API 2 Controller – Empty.

api_testing-4

Назовите контроллер SimpleProductController и нажмите Add.

api_testing-5

Вставьте в него следующий код. В нем для упрощения кода будем использовать коллекцию данных, а не базу данных. Контроллер включает конструктор, который в качестве параметров принимает список объектов Product. Контроллер также включает два асинхронных метода для юнит тестирования.

Метод GetProduct возвращает объект интерфейса IHttpActionResult. IHttpActionResult – это новая фича в Web API 2, и она упрощает разработку юнит тестов. Классы, которые выполняют интерфейс IHttpActionResult можно найти в пространстве имен System.Web.Http.Results. Они представляют всевозможные ответы запросов, и они соответствуют определенному HTTP-коду.

Снова сбилдите приложение.

Установка пакета NuGet в тестовый проект

Если выбран пустой шаблон (Empty template) при создании проекта юнит тестов (StoreApp.Tests), то он не включает по-умолчанию установленный пакет NuGet. Нажмите правой кнопкой на проекте StoreApp.Tests и выберите Manage NuGet Packages.

api_testing-6

Найдите и установите пакет Microsoft ASP.NET Web API 2 Core.

api_testing-7

После установки, закройте окно. Здесь мы подошли непосредственно к написанию юнит-тестов для API.

Написание тестов

По-умолчанию, тестовый проект содержит пустой тестовый файл под названием UnitTest1.cs. Создадим новый файл TestSimpleProductController.cs, а этот удалим. Поместим следующий код:

Запуск тестов

Сейчас мы готовы к запуску тестов, которые имеют атрибут  TestMethod. С помощью меню Test запустите все тесты.

api_testing-8

Откройте Test Explorer и посмотрите на результат выполнения тестов.

api_testing-9

Подписывайтесь на рассылку, чтобы быть в курсе новых статей!

Связанные статьи