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

问题描述 投票:0回答:2

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

var instance = A.Fake(type);

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

autofac fakeiteasy
2个回答
2
投票

从FakeItEasy 2.1.0开始(但是考虑升级到最新版本以获得更多功能和更好的错误修正),你可以像这样create a fake from a Type

using FakeItEasy.Sdk;

…

object fake = Create.Fake(type);

如果必须使用早期版本,则可以使用一些基于反射的方法为A.Fake()方法创建方法信息。 (因为它是关于自动模拟这不应该是一个问题)。


1
投票

最好使用注册处理程序完成。您应该了解AutofacContrib.Moq如何实现其MoqRegistrationHandler。您将看到它实际上使用通用方法MockRepository.Create来制作虚假实例。为FakeItEasy创建一个类似的处理程序应该非常简单。

© www.soinside.com 2019 - 2024. All rights reserved.