我有要模拟的第三方组件,但它返回具有复杂层次结构的类,并且某些接口具有静态字段,这些字段由 API 中不可用的某些类初始化。我不需要隐藏类的任何东西。
示例:假设我们要模拟实现 Combo 的类 MutableCombo。但是接口 Combo 具有由 Breaker 初始化的字段。Breaker 是实现包的一部分,开发人员在编译和测试期间无法访问。
public interface Combo{
String FUU = Breaker.getFoo();
String BAR = Breaker.getBar();
}
public class MutableCombo implements Combo;
我想测试我的类,它使用 MutableCombo 但不能模拟它,因为
java.lang.NoClassDefFoundError: Breaker
at Combo.<clinit>(Combo.java:36)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)