JUnit для Spring Integration Activator с типом возвращаемого сообщения - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь написать контрольные примеры JUnit.и я стал меньше понимать, как я могу написать контрольный пример для метода ниже.Что все надо издеваться.

@Autowired
private DoseService doseService;

public Message<List<Dose>> getAllDoses() {
    log.info("GET method");
    List<Dose> doseLst = doseService.getAllDoses();
    return MessageBuilder.withPayload(doseLst).setHeader("http_statusCode", 
HttpStatus.OK).build();
}

Заранее спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Я написал свой тестовый пример, как показано ниже, и он отлично работает.

@Test
public void testGetAllDoses() {
    List<Dose> doses = createDoses();
    Message<List<Dose>> msg = MessageBuilder.withPayload(doses)
          .setHeader("http_statusCode", HttpStatus.OK).build();
    when(doseService.getAllDoses()).thenReturn(doses);
    Message<List<Dose>> returned =doseServiceActivator.getAllDoses();
    assertThat(returned.getPayload()).isEqualTo(msg.getPayload());
}

private List<Dose> createDoses(){
    List<Dose> doses = new ArrayList<Dose>();
    Dose dose1 = new Dose();
    dose1.setDoseId(1);
    dose1.setDoseValue("80");
    Dose dose2 = new Dose();
    dose2.setDoseId(2);
    dose2.setDoseValue("120");
    doses.add(dose1);
    doses.add(dose2);
    return doses;
}
0 голосов
/ 12 декабря 2018

Глядя на ваш метод, я бы сказал, что только DoseService должен быть посмеянным.Все остальное выглядит хорошо, и вам также не нужно Message в качестве аргумента.

Для насмешек вы можете использовать @MockBean от Spring Boot.

...