[Required]注释在运行时工作正常,但我可以用单元测试进行测试吗?
我试过调试它,但似乎测试只是跳进去,因为该方法的直接调用。
测试:
var result = (StatusCodeResult)await this.Sut.Values(1, null);
result.StatusCode.Should().Be(HttpStatusCode.BadRequest);
方法:
public async Task<IActionResult> Values(int identifier, [Required] SomeType query)
{
var readResult= await this.resultProvider.GetValues(identifier, query);
if (readResult.Failed)
{
var error = new ErrorRepresentation(resultReadResult.Message);
return this.StatusCode(error.StatusCode);
}
return this.Ok(readResult.Value);
}
我应该得到400响应的http响应,但我找不到404。
我的猜测是它寻找一个替代方法,它在可选项上有第二个参数,但没有找到它,因此404。
这是一个路由问题,尝试为您的测试添加自定义路由。