How to unit test ViewComponent.Invoke()?

后端 未结 2 1935
刺人心
刺人心 2020-12-04 02:03

In ViewComponent object, HttpContext and User are read-only properties.

How to unit test such a component?

I\'m using

2条回答
  •  不知归路
    2020-12-04 02:18

    Here is just a samle for async,

        [TestMethod]
            public async System.Threading.Tasks.Task InvokeAsyncNameAsync()
    {
    # setup mocks
    ...
    var httpContext = new DefaultHttpContext();
                var viewContext = new ViewContext();
                viewContext.HttpContext = httpContext;
                var viewComponentContext = new ViewComponentContext();
                viewComponentContext.ViewContext = viewContext;
    
                var footerComponent = CreateComponentInstance();
                footerComponent.ViewComponentContext = viewComponentContext;
    
                ViewViewComponentResult result = await footerComponent.InvokeAsync() as ViewViewComponentResult;
                FooterModel resultModel = (FooterModel)result.ViewData.Model;
    
    ....
    # do your asserts verifications
    
                Assert.AreEqual(expectedTest, resultModel.FooterText);
    }
    

提交回复
热议问题