我正在尝试测试我解决类型实例的程序的一部分。为此,我创建了一个假的IContainer:
this.container = A.Fake<IContainer>();
然而,当我到达这行代码时:
container.Resolve<APresenter>();
它正在抛出ComponentNotRegisteredException!
假的IContainer如何知道甚至抛出异常?假容器应该只是伪造接口,而不是实现。这是怎么回事?
答案 0 :(得分:1)
事实证明,IContainer.Resolve是IContainer的扩展方法。它没有在界面中定义。我尝试在我的Fake IContainer上进行一大堆设置以使扩展方法起作用,但大约一小时后放弃了。
更简单的方法是创建Resolver
界面和Autofac IContainer
周围的包装。