我已经学了4个月的Java了,所以请原谅我的一些基本错误。
我正在尝试对服务层中的一个方法进行单元测试:
@Override
@Transactional
public List<StudentDto> getStudentList() {
List<Student> tempList = studentDAO.getStudentList();
List<StudentDto> tempListStudentDto = new ArrayList<>();
for (Student theStudent: tempList) {
tempListStudentDto.add(convertToDto(theStudent));
}
return tempListStudentDto;
}
使用此@Test:
// JUnit test for getStudentList()
@Test
@DisplayName("getStudentList()")
public void givenStudentList_whenGettingList_thenReturnList() {
// given -precondition
BDDMockito.given(studentDao.getStudentList())
.willReturn(List.of(newStudentOne, newStudentTwo));
// when - behaviour that we are going to test
List<StudentDto> studentList = studentService.getStudentList();
// then - verify the output
assertAll(
() -> org.assertj.core.api.Assertions.assertThat(studentList).isNotNull(),
() -> org.assertj.core.api.Assertions.assertThat(studentList).size().isEqualTo(2)
);
我经常收到这样的错误:java.lang.NullPointerException:无法调用"组织.模型Map器.模型Map器. getConfiguration()",因为"此.模型Map器"为空
你能帮我一下吗?或者告诉我如何用一种可测试的方式把学生类转换成DTO?
我已经在谷歌上搜索了这个问题,并尝试了所有的建议,但无法使它工作。
1条答案
按热度按时间fd3cxomn1#
为了帮助回答这个问题,我们需要查看您声明了哪些属性,添加了哪些注解。通常错误就在其中,要么是您忘记初始化属性,要么是您添加了错误的注解,混淆了单元测试和集成测试的注解。