有没有办法在FakeItEasy中从System.Type对象创建假的?

时间:2011-07-07 12:37:30

标签: autofac fakeiteasy

有没有办法在FakeItEasy中从System.Type对象创建伪造?类似于:

var instance = A.Fake(type);

我尝试为AutoFac编写一个假容器,自动为所有已解析的类型返回假货。我查看了FakeItEasy的代码,所有支持它的方法都在内部类后面,但是我发现接口IFakeObjectContainer看起来很有趣,但实现仍然需要注册对象,这是我想要的。< / p>

2 个答案:

答案 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创建一个类似的处理程序应该非常简单。