How to unit test modelbinder with ModelMetadata

前端 未结 2 542
自闭症患者
自闭症患者 2020-12-08 02:36

How do I unit test a custom ModelBinder?

Here\'s the code.

public class MagicBinder : DefaultModelBinder
    {

        public override object BindMo         


        
2条回答
  •  情书的邮戳
    2020-12-08 03:29

    Try like this:

    [TestMethod]
    public void TestFooBinding()
    {
        // arrange
        var formCollection = new NameValueCollection 
        {
            { "Number", "2" },
            { "Test", "12" },
        };
    
        var valueProvider = new NameValueCollectionValueProvider(formCollection, null);
        var metadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(Foo));
        var bindingContext = new ModelBindingContext
        {
            ModelName = "",
            ValueProvider = valueProvider,
            ModelMetadata = metadata
        };
        var controllerContext = new ControllerContext();
        var sut = new MagicBinder();
    
        // act    
        Foo actual = (Foo)sut.BindModel(controllerContext, bindingContext);
    
        // assert
        // TODO:
    }
    

提交回复
热议问题