Mam interfejs z kilkoma metodami. Mam domyślną implementację tego interfejsu. Na potrzeby testów integracyjnych chciałbym stworzyć fałszywą implementację, która zwróci moją wartość niestandardową, jeśli jedna z tych metod zostanie wywołana, a następnie powróci do domyślnej implementacji. Czy to możliwe z Moq, czy też sam powinienem stworzyć prosty stub?Jak mogę zapewnić implementację metod za pomocą Moq?
Przykład
IInterface default = new DefaultImplementation();
var mock = new Mock<IInterface>();
mock.Setup(i => i.Method(It.IsAny<>())).Calls(p => p==0 ? return 5 : default.Method(p););
TheMethodITest(mock.Object()); //if it calls the object with 0 then it should get 5, otherwise it should call the default object
można podać przykład kodu? – Ian
Nie jest dla mnie jasne, co masz na myśli z * i wraca do domyślnej implementacji inaczej *. Kiedy ta metoda może zostać uruchomiona, jeśli nie zostanie wywołana? –
@Ian, dodany przykład przy użyciu nieistniejących metod do pytania – Grzenio