2012-02-11 15 views
16

Come si scrive un metodo JUnit basato su Mockito per testare questo metodo adduser()? Ho provato a scriverne uno, ma non funziona con un messaggio di errore che dice che l'eccezione non viene gestita. L'errore viene visualizzato per:Utilizzo di mockito per testare metodi che generano eccezioni personalizzate non rilevate

when(service.addUser("nginx")).thenReturn("apache"); 

Assumere addUser() metodo in business class non cattura qualsiasi eccezione e rethrowing non è fatto.

class Business { 
    public User addUser() throws ServiceException{ 
     User user = service.addUser("nginx"); 
     return user; 
    } 
} 

test case METODO:

Qui nella classe di test sto beffarda la classe livello di servizio con l'attributo @Mock e iniettarlo.

@Mock 
Service service; 

@InjectMocks 
Business business = new Business(); 

@Test 
public void testAddUser() { 
    when(service.addUser("nginx")).thenReturn("apache");  
    User user = business.addUser("nginx"); 
    assertNotNull(user); 
} 

Per favore dimmi come gestire lo scenario di eccezione nel caso di test.

+2

Sei consapevole che tutto ciò che stai testando è che il metodo restituisce qualcosa non nullo. Penso che dovresti affermare che restituisce "apache", perché devi veramente controllare che "service.addUser()" sia stato effettivamente chiamato. –

risposta

28

Dichiarare l'eccezione nel metodo di prova.

public void testAddUser() throws ServiceException{ 
... 
} 
Problemi correlati