Итак, я пытаюсь протестировать свой API, используя Http-сервер в памяти, как указано в этом сообщении в блоге: http://blogs.msdn.com/b/youssefm/archive/2013/01/28/написание-тестов-для-an-asp-net-webapi-service.aspx
Мой код выглядит так:
[TestMethod]
public void AddNewCustomer()
{
config = new HttpConfiguration();
WebApiConfig.Register(config);
HttpServer server = new HttpServer(config);
using (HttpMessageInvoker client = new HttpMessageInvoker(server))
{
using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Customer"))
{
request.Content = new StringContent(@"{ ""Email"" : ""[email protected]"", ""Password"" : ""password"" }");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
using (HttpResponseMessage response = client.SendAsync(request, CancellationToken.None).Result)
{
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
}
}
};
}
Я пытался протестировать реальный API, который работает, когда я публикую клиента, он отвечает правильно. Когда я пытаюсь протестировать его с помощью этого, response.StatusCode является «внутренней ошибкой сервера».
Это раздражает, но еще больше сбивает с толку то, что я не могу отладить то, что на самом деле идет не так — я не знаю, почему возникает эта ошибка в этой среде, и я не могу вставлять точки останова, чтобы проверить, что происходит.
РЕДАКТИРОВАТЬ: Мое тело ответа просто:
"{\"Message\":\"An error has occurred.\"}"
Любые идеи?
response.Content.ReadAsStringAsync().Result
- person Kiran Challa   schedule 20.09.2013