2012-02-11 5 views
16

Как написать метод JUnit на основе Mockito для тестирования этого метода adduser()? Я попробовал написать один, но он не работает с сообщением об ошибке, в котором исключение не обрабатывается. Ошибка индицируется:Использование mockito для тестирования методов, которые бросают нечеткие пользовательские исключения

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

Предположим addUser() метод в бизнес-классе никогда не ловит никаких исключений и Повторное выбрасывание не делается.

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

ТЕСТ СЛУЧАЙ МЕТОД:

Здесь в тестовом классе я насмешливый класс обслуживания слоя с @Mock атрибутом и впрыскиванием.

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

Скажите, пожалуйста, как обрабатывать сценарий исключения в тестовом примере.

+2

Знаете ли вы, что все, что вы тестируете, это то, что метод возвращает что-то не null. Я думаю, вы должны утверждать, что он возвращает «apache», потому что вам действительно нужно проверить, действительно ли вызван 'service.addUser()'. –

ответ

28

Объявить исключение в методе тестирования.

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