我知道这是一个棘手的问题,可能有很多想法,但是我很难在网上找到EPIServer中单元测试所特有的示例。
我认为一个好的开始是,如果有人在测试环境中进行过单元测试和TDD的经验,那将使我们有所建树。我对CMS的块类型和页面类型等单元测试不熟悉。因此,我试图获得一些指导。
谢谢
答案 0 :(得分:1)
一个典型的例子是您使用IContentLoader
获取的内容。
假设您使用以下代码来获取主菜单项:
var items = _contentLoader.GetChildren<PageData>(ContentReference.StartPage)
... // filtering
.ToList();
您显然需要过滤掉容器页面,受限页面,未发布页面,将VisibleInMenu
设置为False
的页面,等等。
要对此进行单元测试,您需要模拟IServiceLocator
,IContentLoader
,ITemplateResolver
,IPublishedStateAssessor
等。
除https://github.com/DavidVujic/EPiServer-FakeMaker之外,我还没有找到Episerver的任何开源模拟/测试框架。
大多数正在对Episerver解决方案进行单元测试的公司已经开发了自己的框架,这些框架尚未公开。大卫的FakeMaker是一个不错的开始。