我们有一个 .netcore 3.1 ApiController,其端点侦听 PATCH 请求,并定义了一个用于集成/API 测试的测试服务器。
使用 Postman 发送的 PATCH 请求工作得很好,但在 XUnit 测试中通过 HttpClient 发送的请求失败,并显示 415 不支持的媒体类型。
邮递员补丁请求:除了承载令牌和内容类型之外没有特定标头:“application/json”
在测试中,我们使用 WebApplicationFactory 及其 HttpClient 的factory.CreateClient()。
这不应该是 Json 序列化的问题,因为我通过调试器查看了内容,它似乎序列化得很好。
此外,我们的 POST 方法完全开箱即用,使用完全相同的代码(将“PATCH”替换为“POST”等)
期待一些建议。另外,如果您需要更多信息,请告诉我。多谢。
控制器:
[HttpPatch("{id}")]
public async Task<ActionResult<Unit>> Edit(Edit.Command request)
{
return await Mediator.Send(request);
}
Run Code Online (Sandbox Code Playgroud)
命令:
public class Command : IRequest
{
public string Id { get; set; }
public JsonPatchDocument<ObjectDTO> PatchDocument { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
测试:
[InlineData(/* inline data goes here */)]
public async void TestEdit_Ok(/* required parameters for the …Run Code Online (Sandbox Code Playgroud)