【问题标题】:Testing NancyFX Model Validation测试 NancyFX 模型验证
【发布时间】:2016-02-24 13:12:02
【问题描述】:

早上,

我正在 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 "";
        };
    }
}

测试sn-p:

[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));
}

【问题讨论】:

    标签: validation testing nancy


    【解决方案1】:

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

    我必须实现一个

    的实例
    AbstractValidator<CreateServiceCommand>
    

    来自 FluentValidation

    【讨论】:

      猜你喜欢
      • 2012-03-02
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      相关资源
      最近更新 更多