有没有办法在FakeItEasy中从System.Type对象创建伪造?类似于:
var instance = A.Fake(type);
我尝试为AutoFac编写一个假容器,自动为所有已解析的类型返回假货。我查看了FakeItEasy的代码,所有支持它的方法都在内部类后面,但是我发现接口IFakeObjectContainer看起来很有趣,但实现仍然需要注册对象,这是我想要的。< / p>
答案 0 :(得分:2)
截至FakeItEasy 2.1.0(但考虑升级到最新版本以获取更多功能和更好的错误修正),您可以create a fake from a Type这样:
using FakeItEasy.Sdk;
…
object fake = Create.Fake(type);
如果您必须使用早期版本,您可以使用一些基于反射的方法为A.Fake()方法创建方法信息。 (因为它是关于自动模拟这不应该是一个问题)。
答案 1 :(得分:1)
最好使用注册处理程序完成。您应该了解AutofacContrib.Moq如何实现其MoqRegistrationHandler
。您将看到它实际上使用通用方法MockRepository.Create
来制作虚假实例。为FakeItEasy创建一个类似的处理程序应该非常简单。