Mam ten interfejs, który zwraca pustkę w niektórych funkcjach, które chciałbym wyśmiewać i zastanawiam się, jaki jest właściwy sposób. Obecnie mam następujące:Jaki jest właściwy sposób na pozorowanie funkcji pustych w RhinoMocks?
var mocks = new MockRepository();
var mockedInterface = mocks.CreateMock<IMyInterface>();
Expect.Call(mockedInterface.FunctionThatReturn(param1, param2)).Return(Something);
mockedInterface.FunctionReturningVoid(param3, param4);
mocks.ReplayAll();
// Some assert and other stuff
mocks.VerifyAll();
Czy to właściwy sposób? Myślę, że wygląda dziwnie, ponieważ nie obsługujesz tych dwóch funkcji w ten sam sposób. Co chciałbym napisać to:
var mocks = new MockRepository();
var mockedInterface = mocks.CreateMock<IMyInterface>();
Expect.Call(mockedInterface.FunctionThatReturn(param1, param2)).Return(Something);
Expect.Call(mockedInterface.FunctionReturningVoid(param3, param4)); // This doesn't work.
mocks.ReplayAll();
// Some assert and other stuff
mocks.VerifyAll();
Ale to nie działa w wierszu 4. Znalazłem jakiś blog, który mówi, można użyć lambdy (lub delegata) jak
Expect.Call(() => mockedInterface.FunctionReturningVoid(param3, param4)); // This doesn't work.
ale to nie robi wydaje się działać dla mnie. Posiadanie Expect.Call
ułatwia identyfikację wyśmianych funkcji i dlatego tego chcę. Otrzymany błąd kompilacji to: "Nie można przekonwertować wyrażenia lambda na typ" obiekt ", ponieważ nie jest to typ delegata".
Jak zatem należy to zrobić?
AKTUALIZACJA: Dodano informacje o błędach kompilacji.
Można też dodawać IMyInterface? –