我想测试我的Func
类型是否真的被执行了。为此,我创建了一个Mock
,但我遇到了Exception
来自 Autofixture 的一个。我试图Freeze
只是Func
(没有Mock
)并且这有效。有人可以解释发生了什么或指导我采取正确的方法吗?
异常消息:
Ploeh.AutoFixture.dll 中出现“Ploeh.AutoFixture.Kernel.IllegalRequestException”类型的异常,但未在用户代码中处理附加信息:检测到对 IntPtr 的请求。这是一个不安全的资源,如果使用它将使进程崩溃,因此请求被拒绝。IntPtr 请求的常见来源是对诸如 Func 或 Action 之类的委托的请求。如果是这种情况,预期的解决方法是通过指定适当的创建策略来自定义(注册或注入)违规类型。
代码:
public class DomainClassDummy
{
public int Id { get; set; }
}
var frozenFunc = F.Freeze<Func<int, DomainClassDummy>>(); //works
var frozenMockOfFunc = F.Freeze<Mock<Func<int,DomainClassDummy>>>(); //fails