在测试类中模拟私有静态最终变量



我在要测试的类中有几个私有静态最终字段。喜欢下面

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赋值。

相关内容

  • 没有找到相关文章

最新更新