Java 使用PowerMock模拟包含lambda表达式的类
我试图模拟一个方法中包含lambda表达式的类,如下例所示,但初始化失败:Java 使用PowerMock模拟包含lambda表达式的类,java,unit-testing,junit,lambda,powermock,Java,Unit Testing,Junit,Lambda,Powermock,我试图模拟一个方法中包含lambda表达式的类,如下例所示,但初始化失败: @RunWith(PowerMockRunner.class) @PrepareForTest(MyClass.class) public class MyClassTest {} public class MyClass { public void letsSeeLambda() { this.forTesting((a, b) -> true); } priv
@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
如果我在一个新项目中这样做,很明显,它是有效的。这个问题只发生在我正在处理的现有项目中
我的问题是什么?我解决了这个问题。
pom中依赖项的顺序不正确
结果证明顺序很重要
javassist依赖项必须出现在powermock依赖项之后。我解决了这个问题。
pom中依赖项的顺序不正确
结果证明顺序很重要
javassist依赖项必须出现在powermock依赖项之后。我解决了这个问题。
pom中依赖项的顺序不正确
结果证明顺序很重要
javassist依赖项必须出现在powermock依赖项之后。我解决了这个问题。
pom中依赖项的顺序不正确
结果证明顺序很重要
javassist依赖项必须出现在powermock依赖项之后。我没有看到任何Mock。我错过什么了吗?lambda只是一个方法类的语法糖,因此您可以明确地模拟它们,但如果不能将它们作为参数提供,则不能。错误在于初始化。这意味着它甚至没有看到测试方法。我没有看到任何模拟。我错过什么了吗?lambda只是一个方法类的语法糖,因此您可以明确地模拟它们,但如果不能将它们作为参数提供,则不能。错误在于初始化。这意味着它甚至没有看到测试方法。我没有看到任何模拟。我错过什么了吗?lambda只是一个方法类的语法糖,因此您可以明确地模拟它们,但如果不能将它们作为参数提供,则不能。错误在于初始化。这意味着它甚至没有看到测试方法。我没有看到任何模拟。我错过什么了吗?lambda只是一个方法类的语法糖,因此您可以明确地模拟它们,但如果不能将它们作为参数提供,则不能。错误在于初始化。这意味着它甚至没有看到测试方法。最好接受这个答案,告诉我们pom中哪些项目出了问题,这样任何人都可以在同一问题上学习。最好接受这个答案,告诉我们pom中哪些项目出了问题,这样任何人都可以在同一问题上学习。最好接受此答案,并告诉我们pom中的哪些项目出现故障,以便任何陷入同一问题的人都可以学习。最好接受此答案,并告诉我们pom中的哪些项目出现故障,以便任何陷入同一问题的人都可以学习。