J'utilise IUnityContainer
pour enregistrer les types à résoudre ultérieurement. J'ai enregistré les types comme ci-dessous:Comment résoudre "type nommé" dans NSubstitute?
// Register a "named type" mapping
container.RegisterType<IProcessHelper, FirstResponseHelper>("FirstResponseHelper");
container.RegisterType<IProcessHelper, SecondResponseHelper>("SecondResponseHelper");
Par conséquent, je ne pouvais en mesure d'utiliser comme ci-dessous dans l'un de mon constructeur:
public Finish(
IUnitOfWork unitOfWork ,
ILog logger,
..........
[Dependency("FirstResponseHelper")] IProcessHelper firstResponseHelpe,
[Dependency("SecondResponseHelper")] IProcessHelper secondResponseHelper
)
{
.........
_firstResponseHelpe = firstResponseHelper;
_secondResponseHelper = secondResponseHelper;
}
... et voudrait l'obtenir résolu à l'aide de remplacement , quelque chose comme "ci-dessous". Mais en passant le "nom" => "FirstResponseHelper" n'est pas autorisé dans Substitute! :(
// Trying to resolve in UnitTest, looks like below (passing name)
IProcessHelper firstResponseHelper = Substitute.For<IProcessHelper>("FirstResponseHelper")
IProcessHelper secondResponseHelper = Substitute.For<IProcessHelper>("SecondResponseHelper")
Je dois appeler une méthode de FirstResponseHelper & SecondResponseHelper, de mon UnitTest (MSTest). Par conséquent, je dois l'obtenir résolu en utilisant Substitute.For<>
pour l'interface "de type nommé".
Salut @Lakshminarayanan, peut-être envisager de renommer la question à "Comment résoudre" le type nommé "dans le conteneur Unity?". Je ne pense pas que cela soit spécifique à NSubstitute, mais plutôt pour injecter n'importe quelle instance nommée. –