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,而是爲了注入任何命名實例。 –