Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 在单元测试时,如何访问void方法中的对象?_Java_Unit Testing_Mockito_Void - Fatal编程技术网

Java 在单元测试时,如何访问void方法中的对象?

Java 在单元测试时,如何访问void方法中的对象?,java,unit-testing,mockito,void,Java,Unit Testing,Mockito,Void,我正在对Spring引导服务方法进行单元测试。我有一个没有参数的void方法。它查询数据库并获取一个列表。我可以嘲笑和断言这一点。然后它运行列表并根据某些条件更改对象字段。如何检查该列表的内容,以便对其进行断言 @Transactional public void someMethod() { List<Person> myList = repository.findAllByAge(0); myList.forEach(person -> person.set

我正在对Spring引导服务方法进行单元测试。我有一个没有参数的void方法。它查询数据库并获取一个列表。我可以嘲笑和断言这一点。然后它运行列表并根据某些条件更改对象字段。如何检查该列表的内容,以便对其进行断言

@Transactional
public void someMethod() {
    List<Person> myList = repository.findAllByAge(0);
    myList.forEach(person -> person.setAge(18));
}
@Transactional
公共方法(){
List myList=repository.findallbage(0);
myList.forEach(person->person.setAge(18));
}
我如何在myList上断言,以检查myList中年龄为0的每个人是否设置为18岁?我现在在我的测试课上有这个

@Test
public void someMethod_withSuccess() {
    List<Person> testList = new ArrayList<>();
    testList.add(toPersonEntity(createPersonDto().setAge(0)));
    when(mockRepo.findAllByAge(0)).thenReturn(testList);

    mockService.someMethod();
}
@测试
public void someMethod_with success(){
List testList=new ArrayList();
add(toPersonEntity(createPersonDto().setAge(0));
当(mockRepo.findallbage(0)),然后返回(testList);
mockService.someMethod();
}

您可以通过调用该方法

顺便说一句,如果你需要测试这个方法,它可能必须被重新分配为公共的或者根本不需要测试。

就这么简单

testList.forEach(person -> assertThat("person "+testList.indexOf(person),person.getAge(),equalTo(28)));

你能分享一些代码吗?这样我们就可以更好地了解你拥有什么以及你正在尝试做什么?当你模仿这个方法时,你会传递你期望的结果列表。因此,在结果列表中声明您所期望的更改。使用ArgumentCaptor,您可以实现这一点,发布有助于回答问题的代码。