我试图在一个方法中模拟一个包含lambda表达式的类,如下例所示 - 它在初始化时失败了:
@RunWith(PowerMockRunner.class)
@PrepareForTest(MyClass.class)
public class MyClassTest {}
public class MyClass {
public void letsSeeLambda() {
this.forTesting((a, b) -> true);
}
private void forTesting(Filter filter) {
filter.process(5, 6);
}
}
出现的错误如下:
java.lang.IllegalStateException:无法转换名为..... MyClass的类。 原因:java.io.IOException:无效的常量类型:18 在......
我使用的是powermock 1.6.3,junit 4.12,mockito 1.10.19
如果我在一个新项目中这样做,很明显。问题仅发生在我正在处理的现有项目中。
我的问题是什么?
答案 0 :(得分:3)
我解决了这个问题。 pom中依赖项的顺序不正确。
事实证明这个命令很重要。
javassist依赖项必须在powermock依赖项之后出现。