测试是否使用WebActivator激活类,以及是否将IModelBinder添加到ModelBinderProvide



Stack Exchange的各位同学。

我正在尝试测试是否将我的自定义模型绑定器添加到ModelBinderProviders.BinderProviders集合中。我决定通过WebActivator激活它,以避免扰乱global.asax,一切都很好,但测试:

我尝试使用WebActivator.ActivationManager.Run((方法,但我的东西没有加载。我的测试中有这样的东西:

[TestMethod] 
public void TemplateModelBinderProvider_Should_Be_Registered_In_BinderProviders()
{
    WebActivator.ActivationManager.Run();
    IModelBinderProvider templateModelBinderProvider = ModelBinderProviders.BinderProviders.
        Where(x => x is TemplateModelBinderProvider).
        FirstOrDefault();
    Assert.IsNotNull(templateModelBinderProvider);
}

这是我的app_Start类:

[assembly: WebActivator.PreApplicationStartMethod(typeof(MVC.App_Start.MVCBindings), "Start")]
namespace MVC.App_Start
{
    public static class MVCBindings
    {       
        public static void Start()
        {
            ModelBinderProviders.BinderProviders.Add(new TemplateModelBinderProvider());
        }
    }
}

很抱歉我写的代码有问题。

我现在无法访问源代码,但晚上(英国时间(会看一看。

你认为你可以把你的解决方案发给我,这样我就可以在本地复制它吗?我的电子邮件是gmail.com 上的jkonecki

更新

我收到了你的源代码,但不幸的是,它包含了我无法获得的库的引用,所以我无法编译它

我使用MVC3 web应用程序和单元测试项目创建了一个单独的解决方案(通过电子邮件发送给您(,该解决方案使用您提供的自定义模型绑定器。有两个测试可以证明WebActivatorManager.Run方法正确注册了一个自定义提供程序。

尝试调试单元测试,以确保Run方法调用静态Start方法。

WebActivator的源代码就在这里——你可能想获得它并逐步完成。

相关内容

  • 没有找到相关文章

最新更新