我正在尝试使用 JMockit 模拟 DAO:
public interface MyDao {
Details getDetailsById(int id);
}
使用这个测试类:
public class TestClass {
@Test
public void testStuff(final MyDao dao) throws Exception
{
new Expectations()
{
{
// when we try to get the message details, return our sample
// details
dao.getDetailsById((Integer) any); ***THROWS AN NPE
result = sampleDetails;
}
};
ClassUsingDao daoUser = new ClassUsingDao(dao);
// calls dao.getDetailsById()
daoUser.doStuff();
}
当在 Expectations 块中使用 dao 对象时,会抛出 NPE。我尝试将 dao 的声明移动到使用 @Mocked 注释的成员变量,但同样的事情发生了。我也尝试过使用 MyDao 的具体实现,并且发生了同样的事情。