可以测试方法参数上必需的注释吗?
Required annotation on method parameters can be tested?
[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。
这是路由问题,请尝试为您的测试添加自定义路由。
[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。
这是路由问题,请尝试为您的测试添加自定义路由。