【发布时间】:2020-11-24 07:16:51
【问题描述】:
我希望为如下定义的控制器方法编写一个单元测试(实际的正则表达式要复杂得多,在这里进行了简化)
[HttpGet, Route(@"/abc/{X}/{Y}")] /*,
public async Task<IActionResult> GetData(
[FromRoute, Required, RegularExpression(@"^[\w]{4,12}$")] string X,
[FromRoute, Required, RegularExpression(@"^[\w]{2,24}$")] string Y
)
{
...
}
现在,正如其他问题中所述,验证不适用于单元测试。但是,我希望有人可以阐明如何对使用顶级参数的代码进行单元测试,如上所示,因为到目前为止我发现的所有讨论都集中在模型验证上。
FWIW,我使用的是 Net 5。
【问题讨论】:
-
不确定使用属性是否容易实现,但您可能对 Guard (github.com/safakgur/guard) 或 FluentValidation (fluentvalidation.net) 之类的库感兴趣。这些允许您保持验证规则易于编写和阅读,并将它们放在方法的主体中。
标签: c# .net asp.net-mvc asp.net-core-mvc .net-5