我无法模拟一个班级的公共最终字段。
我有一个带有公共最终字段(复杂对象)的锁定类。
当我运行测试时,Jmockit返回Null指针异常。
那个锁定的类没有该字段的getter或setter,我们通常直接访问它,但是使用@Mocked它似乎无法自动模拟该字段,我做错了什么?
这是我的情况的一个例子:
//测试方法
public static void xxx(final ComplexObjectA objA, ComplexObjectB objB, ComplexObjectC objC){
try{
//some code here
anotherMethod(objB.myObject);
} catch (blabla){}
}
//复杂对象B
public class ComplexObjectB extends SomeClass{
public final SubComplexObject myObject;
}
// TEST
public class MyTest{
@Mocked
ComplexObjectA objA;
@Mocked
ComplexObjectB objB;
@Mocked
ComplexObjectC objC;
@Test
public void checkSomeNull() throws SubjectException, IOException, SQLException {
new Expectations(){{
objB.myObject.getProperty("XYZ"); result = "1";
}};
MyClass.xxx(objA,objB,null);
}
}
我做错了什么?