【发布时间】:2012-07-24 03:52:40
【问题描述】:
我仍在学习 JMockit,需要帮助来理解它。
我正在测试一个使用超类方法的类。我的测试在尝试使用超类方法时得到一个空指针,因为其中的代码使用 struts 动作上下文来获取会话并从会话中拉取对象。
我想绕过受保护方法中的 struts 会话内容的方法。
public class MyExtendingClass extends MySuperClass{
public void methodIamTesting(){///}
}
public abstract class MySuperClass{
//I want to mock this method
protected Object myProtectedSuperClassMethod(){
// struts action context code that returns an object//}
}
测试代码
@Test
public void testRunsAndDoesntPass() {
Mockit.setUpMock(MySuperClass.class, new MySuperClass(){
public Object myProtectedSuperClassMethod() {
return object;
}
});
// real class method invocation happens
assertEquals(expected, actual);
}
我不断得到 NullPointers,就像我没有模拟一样 不知道接下来要尝试什么。我读过的所有文档和代码示例都说只需在 setUpMock 中将超类方法声明为 public,它应该可以工作。
我不能模拟整个班级,因为那是我正在测试的班级。
【问题讨论】:
标签: junit mocking superclass jmockit