Unit testing custom model binder in ASP.NET MVC 2

后端 未结 2 601
暗喜
暗喜 2020-12-13 20:01

I\'ve wrote custom model binder in project, that uses ASP.NET MVC 2. This model binder bind just 2 fields of model:

public class TaskFormBinder : DefaultMode         


        
2条回答
  •  独厮守ぢ
    2020-12-13 20:32

    I've modified Hanselman's MVC 1 example to test ASP.Net MVC 2 model binders...

    [Test]
    public void Date_Can_Be_Pulled_Via_Provided_Month_Day_Year()
    {
        // Arrange
        var formCollection = new NameValueCollection { 
            { "foo.month", "2" },
            { "foo.day", "12" },
            { "foo.year", "1964" }
        };
    
        var valueProvider = new NameValueCollectionValueProvider(formCollection, null);
        var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(FwpUser));
    
        var bindingContext = new ModelBindingContext
        {
            ModelName = "foo",
            ValueProvider = valueProvider,
            ModelMetadata = modelMetadata
        };
    
        DateAndTimeModelBinder b = new DateAndTimeModelBinder { Month = "month", Day = "day", Year = "year" };
        ControllerContext controllerContext = new ControllerContext();
    
        // Act
        DateTime result = (DateTime)b.BindModel(controllerContext, bindingContext);
    
        // Assert
        Assert.AreEqual(DateTime.Parse("1964-02-12 12:00:00 am"), result);
    }
    

提交回复
热议问题