0

我正在尝试为 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);
 }

编辑:所以我仍然只是做初始化不清理(稍后)。如果数据库中有一些数据,我正在手动查找。但是没有数据,没有错误,什么都没有。

4

1 回答 1

0

您可以尝试查看请求的结果属性:

var response = client.PostAsJsonAsync("api/Department", dep1).Result;

然后看看服务器返回什么:

string responseContent = response.Result.Content.ReadAsStringAsync().Result;

现在分析 responseContent 变量以查看您可能从服务器获得的错误消息。此外,您可能希望self-host your Web API在向其发送 HTTP 请求之前进行单元测试,否则您的 API 甚至可能不会启动。

于 2013-06-03T10:33:20.870 回答