2012-08-28 13 views
7

Sto usando mockito-all-1.9.5-rc1.jar e powermock-mockito-1.4.12-full.jar. Quando eseguo questo semplice test di unità per il metodo finale di derisione in classe non finale.NoClassDefFoundError per MockitoInvocationHandler class

import static org.junit.Assert.assertEquals; 

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.powermock.api.mockito.PowerMockito; 
import org.powermock.core.classloader.annotations.PrepareForTest; 
import org.powermock.modules.junit4.PowerMockRunner; 

@RunWith(PowerMockRunner.class) 
@PrepareForTest(ABC.class) 
public class ABCTest { 

    @Test 
    public void finalCouldBeMock() { 
     final ABC abc = PowerMockito.mock(ABC.class); 
     PowerMockito.when(abc.myMethod()).thenReturn("toto"); 
     assertEquals("toto", abc.myMethod()); 
    } 

} 

Quando ho eseguito, ho avuto java.lang.NoClassDefFoundError: org/mockito/internal/MockitoInvocationHandler Caused by: java.lang.ClassNotFoundException: org.mockito.internal.MockitoInvocationHandler

Quando cerco fo classe MockitoInvocationHandler in mockito-all-1.9.5-rc1.jar e powermock-mockito-1.4.12-full.jar. Non sono riuscito a trovarne. Hai bisogno di aiuto con questo problema! Grazie

risposta

15

Mockito 1.9.5-rc1 ha dovuto essere refactored internamente per consentire la falsificazione di terze parti. MockitoInvocationHandler faceva parte degli interni di Mockito (come suggerisce il nome del pacchetto) fino a Mockito 1.9.0.

A causa di questi cambiamenti, corrente qualche vecchia versione Powermock rilascia ad oggi non sono compatibili con l'ultima release Mockito.

Un altro motivo per evitare beffardo/spegnendo le finali o statica;)

Speranza che aiuta Cheers,

+0

Hi Brice che ha aiutato molto. Grazie. –

+0

Grazie mille Brice ora il mio problema è risolto. :) –

+0

Siete i benvenuti :) – Brice