Я пытаюсь настроить некоторые тесты маршрута, используя библиотеку WebApiContrib.Testing. Мои тесты на получение (вроде этого) работают нормально...
[Test]
[Category("Auth Api Tests")]
public void TheAuthControllerAcceptsASingleItemGetRouteWithAHashString()
{
"~/auth/sjkfhiuehfkshjksdfh".ShouldMapTo<AuthController>(c => c.Get("sjkfhiuehfkshjksdfh"));
}
Я довольно потерян в пост-тесте - в настоящее время у меня есть следующее, которое не работает с NotImplementedException...
[Test]
[Category("Auth Api Tests")]
public void TheAuthControllerAcceptsAPost()
{
"~/auth".ShouldMapTo<AuthController>(c => c.Post(new AuthenticationCredentialsModel()), "POST");
}
Вот установка и разборка для полноты...
[SetUp]
public void SetUpTest()
{
RouteConfig.RegisterRoutes(RouteTable.Routes);
WebApiConfig.Register(GlobalConfiguration.Configuration);
}
[TearDown]
public void TearDownTest()
{
RouteTable.Routes.Clear();
GlobalConfiguration.Configuration.Routes.Clear();
}
Маршрут, который я пытаюсь проверить, является маршрутом POST по умолчанию, который сопоставляется с этим вызовом метода...
[AllowAnonymous]
public HttpResponseMessage Post([FromBody] AuthenticationCredentialsModel model)
{ *** Some code here that doesn't really matter *** }
Я также получаю отказ в этом тесте, который проверяет стандартный маршрут GET без параметров, возвращающий все элементы...
[Test]
[Category("VersionInfo Api Tests")]
public void TheVersionInfoControllerAcceptsAMultipleItemGetRouteForAllItems()
{
"~/versioninfo".ShouldMapTo<VersionInfoController>(c => c.Get());
}
Который тестирует этот метод...
public HttpResponseMessage Get()
{ *** Some code here that doesn't really matter *** }
Эта библиотека была рекомендована в нескольких статьях, которые я читал, но теперь я не уверен, делаю ли я что-то не так или она просто довольно ограничена, и мне лучше использовать свою собственную.