【发布时间】:2020-11-13 02:04:05
【问题描述】:
我正在尝试使用 Junit 为我的 StudentRowmapper 类进行测试,我对单元测试和 Mock 测试有点新,我之前问过 smilar 问题,但我不知道如何模拟 Datetime.of 对象。当我运行测试时; DateTimes 抛出空指针异常
学生组列表如下;
@Getter
@Setter
public class StudentGroupList {
private String studentId;
private LocalDateTime studentDate();
}
StudentGroupListRowMapper 下面;
public class StudentGroupListRowMapper implements RowMapper<StudentGroupList> {
@Override
public StudentGroupList mapRow(Resultset rs, int rowNum) throws SQLException {
StudentGroupList studentGroupList = new StudentGroupList();
studentGroupList.setStudentId(rs.getString("student_id"));
studentGroupList.setStudentDate(rs.getTimestamp("student_date").toLocalDateTime());
return studentGroupList;
}
}
下面是我的单元测试;
private static int rowNum = 2;
private StudentGroupListRowMapper mapper;
private ResultSet resultSet;
private StudentGroupList studentGroupList;
@Before
public void setUp() {
studentGroupList = new StudentGroupList();
mapper = new StudentGroupListRowMapper();
resultSet = mock(ResultSet.class);
}
@Test
public void testmapRow() throws SQLException {
when(resultSet.getString("student_id")).thenReturn("sutdent-id-1");
when(resultSet.getTimeStamp("student_date").toLocalDateTime()).thenReturn(LocalDateTime.of(2001,3,17,2,10)));
studentGroupList mapper.mapRow(resultSet, rowNum);
assertEquals(studentGroupList .getStudentId(), "sutdent-id-1");
assertEquals(studentGroupList .getStudentDate, LocalDateTime.of(2001,3,17,2,10));
}
【问题讨论】:
标签: spring spring-boot spring-mvc junit java-8