Mam metodę interfejsu:
string DoSomething(string whatever);
Chcę się z tego wyśmiewać za pomocą MOQ, aby zwracało to, co zostało przekazane - coś w stylu:
_mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) )
.Returns( [the parameter that was passed] ) ;
Jakieś pomysły?
IReturns
w Min definiujeReturns
dla 4 argumenty co najwyżej . Jakiś prosty sposób obejść ten problem? / Mam na myśli oprócz modyfikowania źródła Moq /Moq
v4.0.0.0
. rozwiązane :).Returns<string>
odnosi się do parametrów wejściowych, a nie do wartości, które zwracasz.Nawet bardziej przydatne, jeśli masz wiele parametrów, możesz uzyskać dostęp do dowolnego / wszystkich z nich za pomocą:
Zawsze musisz odwoływać się do wszystkich argumentów, aby dopasować podpis metody, nawet jeśli zamierzasz użyć tylko jednego z nich.
źródło
ReturnsAsync
też z nimi współpracuje !Metoda ogólna
Returns<T>
ładnie poradzi sobie z tą sytuacją.Lub jeśli metoda wymaga wielu danych wejściowych, określ je w następujący sposób:
źródło