我正在尝试使用本link中指示的WebClientFactory
方法来测试.NET Core REST API。当我测试GET
方法时,一切正常,但是我不知道为什么当我通过PostAsync
方法发送数据时,它以null
的形式到达。
这是测试代码:
public class TravelAgentEndToEndTest : IClassFixture<WebApplicationFactory<Startup>>
{
private readonly WebApplicationFactory<Startup> factory;
private readonly HttpClient httpClient;
public TravelAgentEndToEndTest(WebApplicationFactory<Startup> factory)
{
this.factory = factory;
this.httpClient = factory.CreateClient();
}
[Fact]
public async Task TravelAgentReceivesInvalidClientDataAndRejectsIt()
{
string emptyClientData = "Bad";
string url = "/api/clients";
HttpResponseMessage response = await httpClient.PostAsync(url,
new StringContent(emptyClientData,Encoding.UTF8, "application/json"));
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
}
}
我的控制器中的POST方法:
[HttpPost]
public void Post([FromBody]string value)
{
Console.WriteLine(value);
}
调试测试时,我发现value
是null
。
知道我在哪里犯错吗?
PS1:我尝试使用Postman测试post方法,并且该方法有效。
PS2:Startup类是Visual Studio使用Asp.NETCore Web项目下的Web Api模板创建的