Using mockito to test methods which throw uncaught

2019-04-03 04:16发布

问题:

How do I write a Mockito-based JUnit method to test this method adduser()? I tried writing one, but it's failing with an error message saying exception is not handled. The error is displayed for:

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

Assume addUser() method in business class never catches any exception and rethrowing is not done.

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

TEST CASE METHOD :

Here in the test class I am mocking the service layer class with @Mock attribute and injecting it.

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

Please tell me how to handle the exception scenario in the test case.

回答1:

Declare the exception in the test method.

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