我想知道有没有办法向servicestack标记你只想为请求执行流畅的验证过滤器,而不是继续运行真正的代码?
理想情况下,您可以为任何请求添加属性,例如
`ExecuteValidationOnly = true`
这对于测试以及验证表单客户端非常有用。
感谢。
答案 0 :(得分:2)
ServiceStack中没有内置这样的功能,但您可以轻松添加一个请求过滤器,该请求过滤器根据QueryString对请求进行短路,例如:
public class SkipRequestFeature : IPlugin
{
public void Register(IAppHost appHost)
{
appHost.GlobalRequestFilters.Add((req, res, dto) => {
if (req.QueryString["SkipRequest"] == "true")
res.EndRequestWithNoContent();
});
}
}
在ValidationFeature之后注册插件,以便在验证后执行,例如:
Plugins.Add(new ValidationFeature());
Plugins.Add(new SkipRequestFeature());
答案 1 :(得分:1)
对于这种情况,我通常会对我的实际AbstractValidator<T>
类进行单元测试,然后当我需要测试服务时,我会在验证器和设置验证调用上创建一个模拟器。
所以有一个MyValidatorTests
类和一个MyServiceTests
类。