Java Powermock mockstatic无法子类化final类
我想模仿最后一节课Java Powermock mockstatic无法子类化final类,java,eclipse,maven,junit,powermock,Java,Eclipse,Maven,Junit,Powermock,我想模仿最后一节课 PowerMockito.mockStatic(TestFinalClass.class); 当我运行一个junit并将javaagent添加到我的VM参数时,它在eclipse中工作 -javaagent:{path}/powermock-module-javaagent-1.6.4.jar 但当我尝试使用maven build命令从命令行运行所有测试用例时,我仍然得到“不能将final类子类化” 下面是我的pom.xml代码片段 <plu
PowerMockito.mockStatic(TestFinalClass.class);
当我运行一个junit并将javaagent添加到我的VM参数时,它在eclipse中工作
-javaagent:{path}/powermock-module-javaagent-1.6.4.jar
但当我尝试使用maven build命令从命令行运行所有测试用例时,我仍然得到“不能将final类子类化”
下面是我的pom.xml代码片段
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4</version>
<configuration>
<argLine>-javaagent:{path}/powermock-module-javaagent-1.6.4.jar</argLine>
</configuration>
</plugin>
org.apache.maven.plugins
maven surefire插件
2.4
-javaagent:{path}/powermock-module-javaagent-1.6.4.jar
这对我有用。如果添加“PowerMockRunner”和“PrepareForTest”注释,则不需要使用额外的vm参数。我使用JaCoCo获得了代码覆盖率,需要在测试类代码中进行一些与之相关的更改。详情如下:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(FinalClass.class)
public class TestFinalClass{
@Test
public void whenMockFinalClassMockWorks() {
FinalClass finalklass = PowerMockito.mock(FinalClass.class);
}
}
@Rule
public PowerMockRule rule = new PowerMockRule();
@Test
public void test() {
PowerMockito.mockStatic(FinalClass.class);
PowerMockito.mockStatic(StaticClass.class);
}
}
<configuration>
<argLine>-javaagent:{path}/powermock-module-javaagent-1.6.4.jar</argLine>
</configuration>
-javaagent:{path}/powermock-module-javaagent-1.6.4.jar
<configuration>
<argLine>-javaagent:{path}/powermock-module-javaagent-1.6.4.jar</argLine>
</configuration>