C# 用于集成测试的ASP.NET核心WebAPi、TestHost和[FromBody]参数

C# 用于集成测试的ASP.NET核心WebAPi、TestHost和[FromBody]参数,c#,asp.net-web-api,integration-testing,asp.net-core-testhost,C#,Asp.net Web Api,Integration Testing,Asp.net Core Testhost,我有一个ASP.NET核心WebAPI项目已经在使用,我想开始自动化集成测试 控制器只有基本功能: [HttpPost] public IActionResult Post([FromBody]string req) { var dto = JsonConvert.DeserializeObject<DTO>(req); this.service.Create(dto); return Json(dto.Id); } 您需要使用正确配置的测试服务器并创建一个

我有一个ASP.NET核心WebAPI项目已经在使用,我想开始自动化集成测试

控制器只有基本功能:

[HttpPost]
public IActionResult Post([FromBody]string req)
{
    var dto = JsonConvert.DeserializeObject<DTO>(req);
    this.service.Create(dto);
    return Json(dto.Id);
}

您需要使用正确配置的测试服务器并创建一个允许您执行内存集成测试的客户端您需要使用正确配置的测试服务器并创建一个允许您执行内存集成测试的客户端
[Fact]
public async Task Execute()
{
    // Act
    var dto = new DTO() { Field1 = "Filed1" ...};

    var json = JsonConvert.SerializeObject(dto);

    HttpContent payload = new StringContent(json, Encoding.UTF8, "application/json");

    var response = await client.PostAsync("/api/sample", payload);

    response.EnsureSuccessStatusCode();
}