Тест Junit для исключения в классе @InjectMocks - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть следующий код в моем приложении.

Может кто-нибудь помочь мне с написанием контрольного примера для этого.

Сервис. java

```public class Service{
public void createMessage(){
try{
LOG.info("message sent");
}catch(JAXBException){
LOG.info("exception occured");
}
}```

СервисТест. java

```public class ServiceTest{
@InjectMocks
Service service;

@Test
public void testCreateMessageException(){
doThrow(JAXBException.class).when(service.createMessage));
}```

Я пробовал выше тестовый пример, но он дает мне следующую ошибку. org.mockito.exceptions.misusing.MissingMethodInvocationException: when () требует аргумент, который должен быть «вызовом метода для макета». Например: when (mock.getArticles ()). ThenReturn (Articles);

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Причиной ошибки является очень распространенная ошибка при использовании doThrow (). When (). Итак, вы написали:

doThrow(JAXBException.class).when(service.createMessage());

это должно быть:

doThrow(JAXBException.class).when(service).createMessage();
0 голосов
/ 24 апреля 2020

ваше понимание верно, вы не можете использовать when (). Then () в сервисе, который помечен @InjectMocks (тестируемая система). он должен использоваться в службе, которая автоматически подключена в тестируемой системе.

https://www.vogella.com/tutorials/Mockito/article.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...