Umbraco单元测试失败

时间:2014-03-26 11:55:47

标签: umbraco umbraco7

我正在尝试关注Jorge Lusar's suggestion on unit testing Umbraco。我无法使用GetRoutingContext方法,因为Umbraco.Web.Routing.UrlProvider构造函数正在获取空引用异常(我之前已经下载了umbraco 7.0.4安装并编译了Umbraco.Tests.dll)。

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

图像不言自明。任何人都可以帮忙吗?这真的是一个错误还是我可以在这里做的事情?

Null reference exception in UrlProvider constructor

Umbraco configuration settings missing?

2 个答案:

答案 0 :(得分:1)

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

Umbraco是配置文件的附属品。不适合单元测试,但它有效。

这里解释how to stub Umbraco dependencies

答案 1 :(得分:0)

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

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

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

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

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

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