在 EpiServer CMS 中进行单元测试的最佳方法

Best things to unit test in EpiServer CMS

我马上就知道这是一个很复杂的问题,可能有很多想法,但我很难在网上找到 EPIServer 中单元测试的典型示例。

我认为一个好的开始是,如果有人有在测试环境中进行单元测试和 TDD 的经验,那可能会让我们有所收获。我不熟悉 CMS 类型的块和页面类型等单元测试。所以我试图获得一些指导。

谢谢

一个典型的例子是您使用 IContentLoader.
获取的内容 假设您使用以下代码获取主菜单项:

var items = _contentLoader.GetChildren<PageData>(ContentReference.StartPage)
            ... // filtering
            .ToList();

您显然需要过滤掉容器页面、受限页面、未发布页面、VisibleInMenu 设置为 False 的页面等

要对其进行单元测试,您需要模拟 IServiceLocatorIContentLoaderITemplateResolverIPublishedStateAssessor

https://github.com/DavidVujic/EPiServer-FakeMaker

外,我还没有找到 Episerver 的任何开源 mocking/testing 框架

大多数对 Episerver 解决方案进行单元测试的公司都开发了自己的框架,这些框架未公开提供。 David 的 FakeMaker 是一个好的开始。