Validation 测试NancyFX模型验证

Validation 测试NancyFX模型验证,validation,testing,nancy,Validation,Testing,Nancy,早上好 我正在NancyFX(1.4.1)中测试模型验证。当到达API端点时,验证工作正常,但在测试中失败。我正在使用默认的引导程序。测试在一个单独的项目中进行。两个项目都引用了nancy.validation.fluentvalidation包。测试浏览器中是否还需要一些配置 提前谢谢 型号: public class CreateServiceCommand { [Required(AllowEmptyStrings = false)] public string TestF

早上好

我正在NancyFX(1.4.1)中测试模型验证。当到达API端点时,验证工作正常,但在测试中失败。我正在使用默认的引导程序。测试在一个单独的项目中进行。两个项目都引用了nancy.validation.fluentvalidation包。测试浏览器中是否还需要一些配置

提前谢谢

型号:

public class CreateServiceCommand
{
    [Required(AllowEmptyStrings = false)]
    public string TestField { get; set; }
}
正在测试的模块:

public class ServiceModule : NancyModule
{
    private readonly IServiceCreateRequestedListener _listener;

    public ServiceModule(IServiceCreateRequestedListener listener)
    {
        _listener = listener;
        Post["/services/create"] = parameters =>
        {
            var request = this.Bind<CreateServiceCommand>();

            var result = this.Validate(request);

            if(!result.IsValid) return HttpStatusCode.BadRequest;

            _listener.CreateServiceRequested(request);
            return "";
        };
    }
}
公共类服务模块:NancyModule
{
专用readonly iservicecreatedRequestedListener\u listener;
公共服务模块(IServiceCreateRequestedListener)
{
_监听器=监听器;
Post[“/services/create”]=参数=>
{
var request=this.Bind();
var result=this.Validate(请求);
如果(!result.IsValid)返回HttpStatusCode.BadRequest;
_CreateServiceRequested(请求);
返回“”;
};
}
}
测试代码段:

[SetUp]
public void Setup()
{
    var browser = new Browser(with =>
    {
        with.Module<ServiceModule>();
        with.Dependency<IServiceCreateRequestedListener>(this);
    });

    _result = browser.Post("/services/create", with =>
    {
        with.HttpRequest();
    });
}

[Test]
public void ShouldReturnBadRequest
{
    Assert.That(_result.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
}
[设置]
公共作废设置()
{
var browser=新浏览器(使用=>
{
带.Module();
依赖性(this);
});
_结果=browser.Post(“/services/create”,with=>
{
with.HttpRequest();
});
}
[测试]
public void应返回请求
{
Assert.That(_result.StatusCode,Is.EqualTo(HttpStatusCode.BadRequest));
}

演示代码中显示的CreateServiceCommand上的数据注释不起作用

我必须实现一个

AbstractValidator<CreateServiceCommand>
AbstractValidator
来自FluentValidation