小编Raj*_*rai的帖子

'System.Web.Mvc.ViewEngines'的类型初始化程序引发了异常

我试图单元测试一个具有controllercontext参数的void方法,还有一些用于发送电子邮件.电子邮件模板使用视图引擎渲染局部视图 我模拟了controllercontext.因此,渲染视图会抛出异常,因为ControllerContext具有null值.

public static string RenderViewToString(ControllerContext context, string viewPath, object model, bool partial = false)
        {
            var viewEngineResult = partial ? ViewEngines.Engines.FindPartialView(context, viewPath) : ViewEngines.Engines.FindView(context, viewPath, null);

            if (viewEngineResult == null)
                throw new FileNotFoundException("View cannot be found.");

            var view = viewEngineResult.View;
            context.Controller.ViewData.Model = model;

            var result = String.Empty;

            using (var sw = new StringWriter())
            {
                var ctx = new ViewContext(context, view,
                                            context.Controller.ViewData,
                                            context.Controller.TempData,
                                            sw);
                view.Render(ctx, sw);
                result = sw.ToString();
            }

            return result;
        }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc unit-testing mocking viewengine

2
推荐指数
1
解决办法
1757
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

mocking ×1

unit-testing ×1

viewengine ×1