2015-03-11 14 views

risposta

19

Per specificare il risultato di un aspettativa registrato, assegnarlo (sia i valori di restituire o eccezioni di gettare) al result campo:

new Expectations() {{ 
    someMockedMethodOrConstructorInvocation(...); result = new IllegalStateException(); 
}}; 
+0

Ho provato quanto sopra; ma invece di fare il mocking, chiama invece il vero costruttore e crea gli oggetti :( –

+1

Puoi solo registrare un'aspettativa su un metodo o costruttore che è stato * * deriso *, di solito, ciò significa che dichiari un campo di simulazione o un parametro di simulazione usando uno delle annotazioni beffarde, come "' @ Mocked' ". Altrimenti, il vero metodo o costruttore verrà effettivamente eseguito .. –

+0

Ok capito ora! grazie –

0

dovremmo aggiungere la classe di essere finta ed come parametri nel metodo del caso di test. E usando il risultato, possiamo prendere in giro il risultato del metodo.

@Test 
    public void testCase(@Mocked final ClassToMock classToMockObject){ 

     new NonStrictExpectations() { 
       {  
     classToMockObject.methodToMock();result=NullPointerException(); 
      }}; 

     classToMockObject.methodToMock(); //calling the method to throw exception 
    } 
Problemi correlati