我试图测试Nancy模块,这里是调用代码:
[Test]
public void Test_BadRequestIsSent_On_IssueWithNullTitle() {
var browser = new Browser(with => with.Module(new IssuesModule()));
var response = browser.Post("/api/issues/new", (with) => {
with.HttpRequest();
with.FormValue("Title", null);
});
Assert.Equals(HttpStatusCode.BadRequest, response.StatusCode);
}
我得到了例外:
project.testing.fixtures.IssuesModuleFixtures.Test_BadRequestIsSent_On_IssueWithNullTitle:
System.Exception:ConfigurableBootstrapper Exception ----> Nancy.RequestExecutionException:哦,不! ----> Nancy.Validation.ModelValidationException:无法找到模型验证工厂。
请确保您安装了适当的验证包,例如Nancy.Validation包之一。
这是DI配置:
protected override void ConfigureApplicationContainer(StructureMap.IContainer container) {
base.ConfigureApplicationContainer(container);
container.Configure(config => {
config.For<IModelValidatorFactory>().Use<FluentValidationValidatorFactory>().Singleton();
config.For<IValidator<NewIssueViewModel>>().Use<NewIssueViewModelValidator>();
config.Scan(scanner => {
scanner.Assembly(Assembly.GetCallingAssembly());
scanner.WithDefaultConventions();
});
});
}
验证器与StructureMapBootstrapper
类位于同一个程序集中。
我做错了什么?如何设置 FluentValidation ?