如何在Nancy项目中使用FluentValidation和StructureMapBootstrapper

时间:2015-07-24 11:15:17

标签: dependency-injection structuremap nancy fluentvalidation

我试图测试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

0 个答案:

没有答案