2011-08-26 9 views
8

Ho seguente frammento di codice nel mio test di unità,EasyMock: deriso oggetto chiama metodo effettivo

ClassToBeMocked mock = createMock(ClassToBeMocked.class); //I've statically imported EasyMock.* 
mock.callMethod(); //This is a void method 
expectLastCall(); 
replay(mock); 

Ma quando ho eseguito il test, invece di seeting l'aspettarmi, CallMethod() è effettivamente chiamato. Sto facendo qualcosa di sbagliato?

Sono abbastanza nuovo in EasyMock o in qualsiasi framework di simulazione e bloccato a causa di questo problema. Qualsiasi aiuto sarebbe molto apprezzato.

Grazie, andys

+0

ClassToBeMock è una classe concreta o un'interfaccia? Inoltre, quale versione di EasyMock stai usando? –

risposta

8

Questo avverrà se si stanno prendendo in giro una classe con un metodo di 'finale'. EasyMock non sovrascrive un metodo finale. Se non riesci a simulare un'interfaccia e non puoi cambiare il metodo in non finale, puoi utilizzare PowerMock insieme a EasyMock per ovviare a questa limitazione. Questo caso d'uso specifico è descritto here.

Problemi correlati