0
我正在使用IUnityContainer
来注册稍后解析的类型。 我已经注册的类型如下:因此如何解决NSubstitute中的“命名类型”?
// Register a "named type" mapping
container.RegisterType<IProcessHelper, FirstResponseHelper>("FirstResponseHelper");
container.RegisterType<IProcessHelper, SecondResponseHelper>("SecondResponseHelper");
,我能在我的一个构造函数如下用途:
public Finish(
IUnitOfWork unitOfWork ,
ILog logger,
..........
[Dependency("FirstResponseHelper")] IProcessHelper firstResponseHelpe,
[Dependency("SecondResponseHelper")] IProcessHelper secondResponseHelper
)
{
.........
_firstResponseHelpe = firstResponseHelper;
_secondResponseHelper = secondResponseHelper;
}
...并希望得到它使用替代解决,像“下面”一样。但通过传递“名字”=>“FirstResponseHelper”不允许替换! :(
// Trying to resolve in UnitTest, looks like below (passing name)
IProcessHelper firstResponseHelper = Substitute.For<IProcessHelper>("FirstResponseHelper")
IProcessHelper secondResponseHelper = Substitute.For<IProcessHelper>("SecondResponseHelper")
我需要从FirstResponseHelper &调用一个方法SecondResponseHelper,从我的单元测试(MSTest的)。 因此,我需要得到它使用Substitute.For<>
的 “命名型” 接口解决。
喜@Lakshminarayanan,也许考虑将问题重命名为“如何解析”命名类型“在Unity容器中?”。我认为这不是特定于NSubstitute,而是为了注入任何命名实例。 –