是否可以测试方法参数上必需的注释?

时间:2019-04-01 12:07:21

标签: c# .net-core annotations required

[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。

1 个答案:

答案 0 :(得分:0)

我的猜测是,它将寻找一个替代方法,该方法的第二个参数为可选参数,但找不到该参数,因此找不到404。

这是一个路由问题,请尝试为测试添加自定义路由。