【发布时间】:2013-12-17 22:04:15
【问题描述】:
我正在使用 JMockit 测试一个 Spring JDBC 类。 以下是测试类:
公共类 DAOImplTest {
@Tested
DAOImpl daoImpl;
@Mocked
JdbcTemplate mockJdbcTemplate;
@Before
public void setup() throws Exception{
daoImpl = new DAOImpl();
daoImpl.setJdbcTempate(mockJdbcTemplate);
}
@Test
public void testGetSomeString() throws Exception{
final String expectedO = "7c82facc";
final String expectedG = "one";
new Expectations() {{
mockJdbcTemplate.queryForObject(SSODAOImpl.GET_IDS, String.class, expectedO);
result = expectedG;
}};
DAOImpl daoImpl = new DAOImpl();
String actual = daoImpl.getSomeString(expectedO);
assertEquals(expected, actualG);
}
}
该类在String actual = daoImpl.getSomeString(expectedO) 线上抛出 NullPointer 异常
此时出现空指针异常的原因是什么?
以下是DAOImpl类方法:
public String getSomeString(String or) {
DAORowMapper rowMapper = new DAORowMapper();
String g = jdbcTemplate.queryForObject(GET_IDS, rowMapper, orgIds);
return g;
}
这是运行 JUnit 4 测试时的堆栈跟踪。 NullPointer 异常再次出现在运行 Junit4 测试用例时
java.lang.NullPointerException
at com.DAOImpl.getSomeString(DAOImpl.java:31)
at comDAOImplTest.testGetSomeString(DAOImplTest.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:597)
【问题讨论】:
标签: java spring junit4 jmockit