Интеграционное тестирование приложения ASP.NET MVC - PullRequest
6 голосов
/ 13 апреля 2011

Мне нужен совет относительно эффективного способа написания интеграционных тестов для нашего текущего приложения ASP.NET MVC.Наша архитектура состоит из:

  • Уровень обслуживания под контроллерами
  • Уровень обслуживания использует хранилища и очередь сообщений (иногда) для отправки сообщений внешним приложениям.

Я думаю, что нужно сделать следующее:

  • Создать поведенческие модульные тесты для всех изолированных частей.Так, например, мы должны выполнить модульное тестирование сервисного уровня во время макетирования репозиториев и очередей сообщений.

  • То же самое касается контроллеров.Поэтому мы высмеиваем уровень обслуживания и тестируем модуль на контроллере.

  • Наконец, мы пишем отдельные интеграционные тесты для репозиториев с реальной базой данных и классов очереди сообщений с реальными очередями сообщений, чтобы убедиться, что они сохраняются / получают данныеуспешно.

Мои вопросы:

  • Существуют ли другие типы интеграционных тестов, которые нам нужно написать?

  • Нужно ли нам писать интеграционные тесты для Сервисов с реальными репозиториями и очередями сообщений?

  • Нужно ли нам писать интеграционные тесты для контроллеров с реальными Сервисами (которые, в свою очередь, состоят изреальные репозитории и очереди сообщений).

Любой совет будет принята с благодарностью.

Приветствия

Ответы [ 3 ]

1 голос
/ 20 февраля 2012

Я использую Ivonna для тестирования различных уровней изоляции. Я могу проверить, что определенный URL-адрес с некоторыми конкретными данными POST соответствует ожидаемому методу Action с ожидаемыми аргументами, и в то же время я могу заглушить / смоделировать внешние службы.

1 голос
/ 19 апреля 2011

Здесь в офисе мы не тестируем на реальных сервисах.

  • У нас есть тест на стороне обслуживания
  • Мы тестируем контроллеры как модульные тесты, в этих модульных тестах мы используем макет
  • Пока что у нас нет интеграционного теста :-(

Нам посоветовали не использовать реальные службы для тестирования, мы используем Rhino Mocks для имитации ответов для методов, вызываемых внутри действий контроллера.

Таким образом, проблема по-прежнему заключается в том, как правильно выполнять интеграционные тесты.

Может быть, это может помочь вам:

http://www.codeproject.com/Articles/98373/Integration-testing-an-ASP-NET-MVC-application-wit.aspx

но я все еще ищу лучшего понимания его возможностей.

0 голосов
/ 22 января 2016

Я использовал SpecsFor.MVC для интеграционного тестирования. По сути, вы пишете код в тестовом классе, и среда запускает браузер, интерпретируя ваш C # в действиях браузера. Он очень прост в использовании и настройке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...