我试图为WebAPI和EF编写UnitTest
我试图添加数据在den TestInitialize中执行数据库,但它没有用。当我在控制台应用程序中执行相同的命令时,它可以工作。 在调用webapi进行测试时有不同之处吗?
[TestInitialize]
public void CreateEntityObjects()
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:60609/");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Department dep1 = new Department() { Id = Guid.NewGuid(), Name = "IT" };
client.PostAsJsonAsync("api/Department", dep1);
}
编辑: 所以我仍然只是初始化没有清理(稍后)。如果数据库中有一些数据,我会手动查看。但没有数据,没有错误,没有。
答案 0 :(得分:0)
您可以尝试查看请求的结果属性:
var response = client.PostAsJsonAsync("api/Department", dep1).Result;
然后看一下服务器返回的内容:
string responseContent = response.Result.Content.ReadAsStringAsync().Result;
现在分析responseContent变量以查看您可能从服务器获得的错误消息。此外,您可能希望在向其发送HTTP请求之前在单元测试中self-host your Web API
,否则您的API可能甚至无法启动。