web-dev-qa-db-fra.com

Utilisation de mockito pour tester des méthodes qui lèvent des exceptions personnalisées non capturées

Comment écrire une méthode JUnit basée sur Mockito pour tester cette méthode adduser()? J'ai essayé d'en écrire un, mais il échoue avec un message d'erreur disant que l'exception n'est pas gérée. L'erreur s'affiche pour:

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

Supposons que la méthode addUser() dans la classe affaires ne détecte aucune exception et que la relance ne soit pas effectuée.

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

MÉTHODE DE CAS D'ESSAI:

Ici, dans la classe de test, je moque la classe de couche service avec l'attribut @Mock Et je l'injecte.

@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);
}

Veuillez me dire comment gérer le scénario d'exception dans le cas de test.

35
Sekhar

Déclarez l'exception dans la méthode de test.

public void testAddUser() throws ServiceException{
...
}
57
Dawood ibn Kareem