测试 NancyFX 模型验证
Testing NancyFX Model Validation
早上好,
我正在 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 "";
};
}
}
测试片段:
[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));
}
演示代码中显示的 CreateServiceCommand 上的数据注释不起作用。
我必须实现
的一个实例
AbstractValidator<CreateServiceCommand>
来自 FluentValidation
早上好,
我正在 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 "";
};
}
}
测试片段:
[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));
}
演示代码中显示的 CreateServiceCommand 上的数据注释不起作用。
我必须实现
的一个实例AbstractValidator<CreateServiceCommand>
来自 FluentValidation