Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit for Spring Integration Activator,返回类型为消息<&燃气轮机;_Java_Spring_Unit Testing_Junit_Spring Integration - Fatal编程技术网

Java JUnit for Spring Integration Activator,返回类型为消息<&燃气轮机;

Java JUnit for Spring Integration Activator,返回类型为消息<&燃气轮机;,java,spring,unit-testing,junit,spring-integration,Java,Spring,Unit Testing,Junit,Spring Integration,我正在尝试编写一个JUnit测试用例。我变得毫无头绪,我该如何为下面的方法编写测试用例。 所有这些都需要嘲笑 @Autowired private DoseService doseService; public Message<List<Dose>> getAllDoses() { log.info("GET method"); List<Dose> doseLst = doseService.getAllDoses(); retur

我正在尝试编写一个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();
}
@Autowired
私人DoseService DoseService;
公共消息getAllDoges(){
log.info(“获取方法”);
List doseLst=doseService.getAllDoges();
返回MessageBuilder.withPayload(doseLst).setHeader(“http\U状态码”,
HttpStatus.OK);
}

提前感谢您的帮助。

看看您的方法,我想说只有
DoseService
必须被模仿。其他一切看起来都很好,您也不需要将
消息作为参数


对于模拟,您可以使用Spring Boot中的
@MockBean

查看您的方法,我会说只有
DoseService
必须进行模拟。其他一切看起来都很好,您也不需要将
消息作为参数


对于模拟,您可以使用Spring Boot中的
@MockBean

我编写了下面这样的测试用例,效果很好

@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;
}
@测试
public void testGetAllDoges(){
列表剂量=创建剂量();
Message msg=MessageBuilder.withPayload(剂量)
.setHeader(“http_statusCode”,HttpStatus.OK).build();
当(doseService.getAllDoges())。然后返回(剂量);
返回的消息=doseServiceActivator.getAllDoges();
assertThat(返回.getPayload()).isEqualTo(msg.getPayload());
}
私有列表{
列表剂量=新的ArrayList();
剂量1=新剂量();
dose1.setDoseId(1);
dose1.setDoseValue(“80”);
剂量2=新剂量();
dose2.setDoseId(2);
dose2.setDoseValue(“120”);
剂量。添加(剂量1);
剂量。添加(剂量2);
返回剂量;
}

我像下面这样编写了测试用例,效果很好

@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;
}
@测试
public void testGetAllDoges(){
列表剂量=创建剂量();
Message msg=MessageBuilder.withPayload(剂量)
.setHeader(“http_statusCode”,HttpStatus.OK).build();
当(doseService.getAllDoges())。然后返回(剂量);
返回的消息=doseServiceActivator.getAllDoges();
assertThat(返回.getPayload()).isEqualTo(msg.getPayload());
}
私有列表{
列表剂量=新的ArrayList();
剂量1=新剂量();
dose1.setDoseId(1);
dose1.setDoseValue(“80”);
剂量2=新剂量();
dose2.setDoseId(2);
dose2.setDoseValue(“120”);
剂量。添加(剂量1);
剂量。添加(剂量2);
返回剂量;
}

是正确的,在这里我不需要任何输入。但是,如果我必须将消息作为输入,如何构建它呢。让我们说消息?使用相同的
MesaageBuilder
!谢谢你的建议。我能够成功地编写测试用例,请考虑接受答案:是的,在这一点上,我不需要任何输入。但是,如果我必须将消息作为输入,如何构建它呢。让我们说消息?使用相同的
MesaageBuilder
!谢谢你的建议。我能够成功地编写测试用例,请考虑接受答案: