Тестирование роутинга в ASP.NET MVC - CodeHelper

Тестирование роутинга в ASP.NET MVC

2

Как протестировать роутинг приложения на ASP.NET MVC? Желательно использовать минимум самописных mock- и stub-объектов.

Новые ответы


1

Проект MvcContrib.TestHelper содержит классы-заглушки большинства объектов инфраструктуры ASP.NET MVC. Также есть специальные расширения специально для тестирования роутинга. Эти расширения позволяют тестировать простой роутинг вообще без самописных заглушек:

[TestFixture]
public class RoutesTester
{
    [SetUp]
    public void Init() /*[Инициализация теста]*/
    {
        RouteTable.Routes.Clear();
        MvcApplication.RegisterRoutes(RouteTable.Routes);
    }

    [Test]
    public void DefaultTest()
    {
        "~/aboute".Route().ShouldMapTo<InfoController>(c => c.Aboute());
    }
}

Важный момент — перед каждым тестом таблица роутинга очищается и заполняется заново. За это отвечает вот этот код:

[SetUp]
public void Init()
{
    RouteTable.Routes.Clear();
    MvcApplication.RegisterRoutes(RouteTable.Routes);
}

Такой подход отлично работает если метод контроллера получает аргументы примитивных типов. Но если экшен принимает сложные объекты, требующие работу байндеров, то ShouldMapTo не может правильно определить параметры роутинга.


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.