我收到这个错误。
Ploeh.AutoFixture.Kernel.IllegalRequestException
:对 IntPtr 的请求是
检测到。这是不安全的资源
如果使用的话,进程会崩溃,
所以请求被拒绝。普通的
IntPtr请求的来源是requests
对于诸如 Func 或
行动。如果是这种情况,则
预期的解决方法是自定义
(注册或注入)违规者
通过指定适当的创建类型
战略。
这是我的测试代码。我正在使用 autofac,依赖项之一是聚合服务。
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var moq = new Mock<ITaskReadService>();
moq.Setup(x => x.GetFormItems(1)).Returns(GetDataTable());
IIcpServiceAggregate aggregate = _container.Resolve<IIcpServiceAggregate>();
fixture.Freeze(aggregate);
fixture.Freeze(moq.Object);
var c = fixture.CreateAnonymous<TaskController>();
假设 TaskController 是 ASP.NET MVC 3 控制器,您应该能够通过执行以下操作来解决此特定问题:
fixture.Customize<ViewDataDictionary>(c =>
c.Without(vdd => vdd.ModelMetadata));
因为 ViewDataDictionary.ModelMetadata 是一种 Func(不记得到底是哪一个)。
AutoFixture 的未来版本将提供对代表的 OOB 支持 http://autofixture.codeplex.com/workitem/4226.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)