Mam metodę z następującym podpisem, że chciałbym skrótową:Czy można stosować Rhino Mocks do odgałęzienia ogólnej metody, w której nie zależy mi na typie?
async Task<T> MyMethod<T>(SomeClass, bool, string, string, string, params object[])
The typu rodzajowego, T, jest typem, który spodziewamy się, że metoda, aby powrócić (dane zwracane z serwera odlewa się typ T). Zauważ, że nie można wywnioskować z parametrów przekazanych; musi być określony za każdym razem.
Potrzebuję utworzyć skrót do tej metody w Rhino Mocks, ale oczekuję, że podam typ ogólny. Chciałbym, żeby służyły one do rozmów z dowolnego typu. Próbowałem użyć <object>
, ale następnie oczekuje wywołania z tego konkretnego typu.
Rozumiem, dlaczego byłby to problem, ponieważ wywołania typów ogólnych są rozwiązywane podczas kompilacji, a nie w czasie wykonywania.
Myślałem, że warto o to zapytać, na wypadek, gdyby brakowało mi jakiejś sztuczki.
Edycja 1
powinno mam włączone, że teraz mam wdrożone obejście czym mam owinięty mój skrótową Konstruktora w metodzie pomocnika, która sama metoda rodzajowa.
Problem polega na tym, że muszę określić typ, a następnie tylko ten typ jest pokryty. Testowany system może wywołać kilka odwołań do metody, którą stosuję, i potrzebuję "catch all", który obsługuje wszystkie typy.
Edycja 2
Moja poprawiła obejście było nie używać Rhino Mocks w ogóle. Zamiast tego używam klasy próbnej, która implementuje interfejs. Ułatwia to wdrożenie metody ogólnej i zwraca wartość domyślną (lub taką, która została ustawiona podczas budowy). Nadal chciałbym wiedzieć, czy jest to możliwe w Rhino Mocks!
To co robiłem jako tymczasowe obejście problemu, ale system w ramach testu można wykonać kilka wywołań dla różnych typów, a każdy z nich będzie musiał zostać zgrupowany, aby nie stanowił wyjątku. Właśnie dlatego potrzebuję odcinka "catch all". Przepraszam - powinienem uwzględnić to w moim pytaniu. –