Asp.net
如何在 ASP.NET MVC 中測試自定義模型綁定器?
我在我們的 ASP.NET MVC 應用程序中編寫了一些自定義模型綁定器(實現 IModelBinder)。我想知道對它們(活頁夾)進行單元測試的好方法是什麼?
我是這樣做的:
var formElements = new NameValueCollection() { {"FirstName","Bubba"}, {"MiddleName", ""}, {"LastName", "Gump"} }; var fakeController = GetControllerContext(formElements); var valueProvider = new Mock<IValueProvider>(); var bindingContext = new ModelBindingContext(fakeController, valueProvider.Object, typeof(Guid), null, null, null, null); private static ControllerContext GetControllerContext(NameValueCollection form) { Mock<HttpRequestBase> mockRequest = new Mock<HttpRequestBase>(); mockRequest.Expect(r => r.Form).Returns(form); Mock<HttpContextBase> mockHttpContext = new Mock<HttpContextBase>(); mockHttpContext.Expect(c => c.Request).Returns(mockRequest.Object); return new ControllerContext(mockHttpContext.Object, new RouteData(), new Mock<ControllerBase>().Object); }然後我只是將 bindingContext 變數傳遞給實現 IModelBinder 介面的對象的 BindModel 方法。