Тестирование маршрута с помощью WebApiContrib

У меня есть проект WebApi, который я пытаюсь протестировать. У меня есть контроллер -

public class UserController : ApiController
{
    public string Get()
    {
        return "foo";
    }
}

Мне нужно протестировать маршрут, и я пытаюсь использовать пакет WebApiContrib.Testing.

Теперь моя проблема в том, что при регистрации маршрутов я использую GlobalConfiguration.Configuration.Routes, который имеет тип HttpRouteCollection.

В моем тесте я могу получить доступ к RouteTable.Routes, но это тип RouteCollection.

В результате я не могу прописать маршруты WebApi в своем тесте из-за несовместимости этого типа.

Кто-нибудь сталкивался с этой проблемой раньше? Есть ли что-то очевидное, что я упускаю?


person Srikanth Venugopalan    schedule 25.03.2013    source источник


Ответы (1)


Я решил это, используя:

WebApiConfig.Register( GlobalConfiguration.Configuration );

In TestFixtureSetup

person Maate    schedule 13.06.2013
comment
Это работает нормально, пока у вас нет двух тестовых фикстур, которым нужно зарегистрировать конфигурацию ;) Знаете ли вы, как отменить регистрацию или удалить предыдущую регистрацию? - person robbymurphy; 03.07.2013
comment
Вам просто нужно вызвать GlobalConfiguration.Configuration.Routes.Clear() перед вызовом WebApiConfig.Register( GlobalConfiguration.Configuration ), чтобы маршруты не отображались несколько раз. - person robbymurphy; 05.07.2013
comment
Это заставляет работать тесты на основе Get, но я не получаю удовольствия от POST и т. д. - может ли кто-нибудь предложить какое-либо понимание? Подробности здесь - stackoverflow.com/questions/18377365/ - person Keith Jackson; 30.08.2013