我在要测试的类中有几个私有静态最终字段。喜欢下面
public class ClassToTest{
....
private static final Myclass myclass = MyClassFactory.getMyClass(type.firstType);
....
}
该类型是 MyClassFactory 中的一个枚举。该工厂所做的是它根据传递和返回的类型初始化对象。
我的问题是 powermock 是否支持此功能,如果是,如何做到这一点。
如果有任何模拟库适合您,您也可以使用反射。
Field f = classToTest.getclass().getDeclaredField("myclass ");
f.setAccessible(true);
f.set(classToTest,/*NEW VALUE*/);
PowerMock ( + a mocking framework ) 将允许你这样做。假设你说的是嘲笑MyClassFactory.getMyClass() ?
有关示例,请参阅此问题
为什么要
测试这个值?你不应该测试你的枚举,测试当给定类型传递给它时它是否返回正确的值。如果你想测试枚举对字段的赋值,你怀疑基本的java赋值。