使用Sitecore.FakeDB模拟RenderingContext

Rog*_*hip 2 unit-testing sitecore sitecore-mvc

我正在使用Sitecore.FakeDB为我的Sitecore编写单元测试.我想模拟RenderingContext,设置我当前项目的渲染参数或数据源.

但是,在调用时RenderingContext.Current,我的unittest崩溃时出现以下错误:

Test method YourAssembly.YourClass.YourTest threw exception: 
System.InvalidOperationException: Attempt to retrieve context object of type 'Sitecore.Mvc.Presentation.RenderingContext' from empty stack.
Run Code Online (Sandbox Code Playgroud)

是否嘲笑RenderingContextSitecore.FakeDB支持?

如果不支持,我将使用Marc Duiker的博客从我的代码中抽象调用RenderingContext

gor*_*hal 9

如何使用RenderingContext.EnterContext.像这样的东西:

Item datasourceContextItem = db.GetItem("/sitecore/content/some/stuff");

using (RenderingContext.EnterContext(new Rendering(), datasourceContextItem))
{

    IMyViewModelRepository repository = new MyViewModelRepository();
    MyController controller = new MyController(repository);

    ViewResult view = (ViewResult)controller.Index();

    ((MyViewModel)view.Model).MyHtmlStringProperty.ToString().Should().Be("some value");
}
Run Code Online (Sandbox Code Playgroud)