如何对 Umbraco Api 控制器进行单元测试 - System.ArgumentNullException: 'Value cannot be null. Parameter name: umbracoContext'
How to unit test Umbraco Api controller - System.ArgumentNullException: 'Value cannot be null. Parameter name: umbracoContext'
我正在尝试为 UmbracoApiController
编写单元测试,但是当 运行 测试时,我在创建 api 控制器的新实例时遇到错误。
我已经开始研究模拟 umbraco 上下文,但没有取得太大进展,因为我对它太陌生了。
[TestMethod]
public void GetAllMembers()
{
var c = new GroupManagerApiController();
Assert.Fail();
}
控制器
public class GroupManagerApiController : UmbracoApiController
创建控制器的新实例时,我收到以下错误消息:
System.ArgumentNullException: 'Value cannot be null.
Parameter name: umbracoContext'
请指导我。
谢谢。
http://blog.aabech.no/archive/the-basics-of-unit-testing-umbraco/
这篇博客解决了这个问题。
需要使用以下内容创建设置方法:
[SetUp]
public void SetUp()
{
var applicationContext = new ApplicationContext(
CacheHelper.CreateDisabledCacheHelper(),
new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>())
);
UmbracoContext.EnsureContext(
Mock.Of<HttpContextBase>(),
applicationContext,
new WebSecurity(Mock.Of<HttpContextBase>(), applicationContext),
Mock.Of<IUmbracoSettingsSection>(),
Enumerable.Empty<IUrlProvider>(),
true
);
}
我正在尝试为 UmbracoApiController
编写单元测试,但是当 运行 测试时,我在创建 api 控制器的新实例时遇到错误。
我已经开始研究模拟 umbraco 上下文,但没有取得太大进展,因为我对它太陌生了。
[TestMethod]
public void GetAllMembers()
{
var c = new GroupManagerApiController();
Assert.Fail();
}
控制器
public class GroupManagerApiController : UmbracoApiController
创建控制器的新实例时,我收到以下错误消息:
System.ArgumentNullException: 'Value cannot be null.
Parameter name: umbracoContext'
请指导我。
谢谢。
http://blog.aabech.no/archive/the-basics-of-unit-testing-umbraco/
这篇博客解决了这个问题。
需要使用以下内容创建设置方法:
[SetUp]
public void SetUp()
{
var applicationContext = new ApplicationContext(
CacheHelper.CreateDisabledCacheHelper(),
new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>())
);
UmbracoContext.EnsureContext(
Mock.Of<HttpContextBase>(),
applicationContext,
new WebSecurity(Mock.Of<HttpContextBase>(), applicationContext),
Mock.Of<IUmbracoSettingsSection>(),
Enumerable.Empty<IUrlProvider>(),
true
);
}