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