所以我正在尝试使用内存Http Server测试我的API,正如此博客文章所建议的那样:http://blogs.msdn.com/b/youssefm/archive/2013/01/28/writing-tests-for-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"" : ""me@you.com"", ""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.\"}"
有什么想法吗?
答案 0 :(得分:0)
在新的HttpConfiguration()
之后添加以下内容config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;