调用服务后返回空列表Class 测试方法Class
Retuning Empty List After Call ServiceClass Method from Testing Class
调用 getStudentDetails() 后重新调整空列表
我已经编写了一个 Studentservice class 和一个 StudentRepo 接口,并希望使用带有 mockito 的 junit5 对服务 class 进行联合测试。
预期列表大小为 2 但 return 0。
请参考以下代码
学生服务Class
@Service
public class StudentService {
@Autowired
StudentRepo studentRepo;
public List<Student> getStudentDetails(){
List<Student> students = studentRepo.findAll();
for(Student student : students) {
student.setMarks(50);
}
return students;
}
}
学生服务测试class
@WebMvcTest(StudentService.class)
public class StudentServiceTest {
@MockBean
StudentRepo studentRepoMock;
@Mock
StudentService studentServiceMock;
@Test
public void test() {
when(studentRepoMock.findAll()).thenReturn(
Arrays.asList(new Student(1,"abc"),
(new Student(2,"def"))
));
List<Student> student=studentServiceMock.getStudentDetails(); //return empty List
verify(studentServiceMock, Mockito.times(1)).getStudentDetails(); /*it's working*/
System.out.println(student.size());
//assertEquals(50,student.get(0).getMarks());
//assertEquals(50,student.get(1).getMarks());
}
}
任何帮助将不胜感激
您已经模拟了存储库和服务。您永远不会以这种方式调用任何实际功能。如果你想测试 StudentService
,你必须让 Spring 至少通过在 StudentService
.
上用 @Autowired
替换 @Mock
来实例化它
调用 getStudentDetails() 后重新调整空列表 我已经编写了一个 Studentservice class 和一个 StudentRepo 接口,并希望使用带有 mockito 的 junit5 对服务 class 进行联合测试。
预期列表大小为 2 但 return 0。 请参考以下代码
学生服务Class
@Service
public class StudentService {
@Autowired
StudentRepo studentRepo;
public List<Student> getStudentDetails(){
List<Student> students = studentRepo.findAll();
for(Student student : students) {
student.setMarks(50);
}
return students;
}
}
学生服务测试class
@WebMvcTest(StudentService.class)
public class StudentServiceTest {
@MockBean
StudentRepo studentRepoMock;
@Mock
StudentService studentServiceMock;
@Test
public void test() {
when(studentRepoMock.findAll()).thenReturn(
Arrays.asList(new Student(1,"abc"),
(new Student(2,"def"))
));
List<Student> student=studentServiceMock.getStudentDetails(); //return empty List
verify(studentServiceMock, Mockito.times(1)).getStudentDetails(); /*it's working*/
System.out.println(student.size());
//assertEquals(50,student.get(0).getMarks());
//assertEquals(50,student.get(1).getMarks());
}
}
任何帮助将不胜感激
您已经模拟了存储库和服务。您永远不会以这种方式调用任何实际功能。如果你想测试 StudentService
,你必须让 Spring 至少通过在 StudentService
.
@Autowired
替换 @Mock
来实例化它