【发布时间】:2016-07-14 12:22:47
【问题描述】:
我想知道有没有办法向 servicestack 标记您只想为请求执行流利的验证过滤器,而不是继续运行真正的代码?
理想情况下,您可以为任何请求添加属性,例如
`ExecuteValidationOnly = true`
这对于测试和验证表单客户端非常有用。
谢谢。
【问题讨论】:
标签: servicestack
我想知道有没有办法向 servicestack 标记您只想为请求执行流利的验证过滤器,而不是继续运行真正的代码?
理想情况下,您可以为任何请求添加属性,例如
`ExecuteValidationOnly = true`
这对于测试和验证表单客户端非常有用。
谢谢。
【问题讨论】:
标签: servicestack
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());
【讨论】:
对于这种情况,我通常对我的实际 AbstractValidator<T> 类进行单元测试,然后当我需要测试服务时,我会在验证器上创建一个模拟并设置验证调用。
所以有一个MyValidatorTests 类和一个MyServiceTests 类。
【讨论】: