Posts
163
Comments
179
Trackbacks
5
novembre 2012 Blog Posts
RhinoMocks: PartialMock e metodi virtuali

Oggi durante la scrittura di alcuni Unit Test mi sono imbattuto in un errore banale, ma che mi ha fatto perdere un po’ di tempo.
Sostanzialmente creando un mock parziale con Rhino Mocks mi saltava fuori sempre la seguente eccezione:

Invalid call, the last call has been used or no call has been made (make sure that you are calling a virtual (C#) / Overridable (VB) method).

La creazione del mock parziale è qualcosa del tipo (Visual Basic… si lo so…):

   1: Dim service As IMyService = MockRepository.GeneratePartialMock(Of MyService)()
   2: service.Expect(Function(e) e.MyFunction()).Return(True).Repeat.Once()

Come dice l’errore stesso, il tutto accade se la funzione MyFunction non viene dichiarata come Virtuale (Overridable in Visual Basic).
Le limitazioni di Rhino Mocks (prese da questo link) sono le seguenti:

- You cannot create a mock object from a sealed class.
- You cannot create a mock object from a private interface.
- You cannot intercept calls to non-virtual methods.

posted @ mercoledì 14 novembre 2012 17:23 | Feedback (1)
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS