gpt4 book ai didi

unit-testing - 使用 Sitecore.FakeDB 模拟 RenderingContext

转载 作者:行者123 更新时间:2023-12-04 04:23:26 26 4
gpt4 key购买 nike

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

但是,当调用 RenderingContext.Current 时,我的单元测试崩溃并出现以下错误:

Test method YourAssembly.YourClass.YourTest threw exception: 
System.InvalidOperationException: Attempt to retrieve context object of type 'Sitecore.Mvc.Presentation.RenderingContext' from empty stack.

模拟 Sitecore.FakeDB 支持的 RenderingContext 吗?

如果不支持,我将使用 Marc Duiker's blog 将对 RenderingContext 的调用从我的代码中抽象出来

最佳答案

如何使用 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");
}

关于unit-testing - 使用 Sitecore.FakeDB 模拟 RenderingContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32826406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com