2

我正在尝试遵循Jorge Lusar 关于单元测试 Umbraco 的建议。我无法让 GetRoutingContext 方法工作,因为 Umbraco.Web.Routing.UrlProvider 构造函数出现空引用异常(我之前下载了 umbraco 7.0.4 安装并编译了 Umbraco.Tests.dll)。

当我没有选择的余地时,我决定下载一个新的 Umbraco 副本,编译并运行一个将执行 UrlProvider 构造函数的测试。令我惊讶的是,我在那里也得到了空引用异常,很明显,这个错误与我的解决方案无关,而是 Umbraco 的。

图像不言自明。有人可以帮忙吗?这真的是一个错误还是我可以在这里做些什么?

UrlProvider 构造函数中的空引用异常

Umbraco 配置设置丢失?

4

2 回答 2

1

该问题的解决方案是将配置设置(Umbraco 解决方案的 UnitTests 项目中的设置)复制到我的测试项目中。

Umbraco 依赖于配置文件。不适合单元测试,但它有效。

这里解释了如何存根 Umbraco 依赖项

于 2014-07-09T13:53:03.510 回答
0

检查我一直在处理的当前 v7 站点的 web.config,umbracoConfiguration/settings 部分的类型为Umbraco.Core.Configuration.UmbracoSettings.UmbracoSettingsSection.

你做错的另一件事是使用as IUmbracoSettingsSection. 这意味着如果转换失败,您将返回一个空对象,而不是告诉您转换失败的异常 - 它会默默地失败。最好这样做:

var umbracoSettings = (IUmbracoSettingsSection)ConfigurationManager.GetSection("umbracoConfiguration/settings");

如前所述,我认为您的基本类型是错误的,您实际上应该使用:

var umbracoSettings = (Umbraco.Core.Configuration.UmbracoSettings.UmbracoSettingsSection)ConfigurationManager.GetSection("umbracoConfiguration/settings");

这应该为您将该部分转换为正确的类型。

于 2014-07-09T12:43:37.803 回答