我正在将用 JUnit 4 编写的单元测试转换为 JUnit 5。当被测试的方法调用静态方法时,我们使用 JMockit。在 JUnit 4 中,
@RunWith(JMockit.class)
public class MyTest{
}
Run Code Online (Sandbox Code Playgroud)
在 JUnit 5 中,如果我在 pom.xml 中添加 JMocket 依赖项,则使用 JMockit 的 JUnit 5 测试和不使用 JMockit 的测试失败并显示错误
ERROR
error java.lang.NullPointerException
at mockit.integration.junit4.internal.RunNotifierDecorator.fireTestStarted.
Run Code Online (Sandbox Code Playgroud)
如果我从 pom.xml 中删除 JMockit 依赖项,JUnit 5 测试对于那些不使用 JMockit 的测试是成功的。但其他人因错误而失败,
mockit cannot be found.
<jmockit-version>1.38</jmockit-version>
<junit-jupiter-version>5.2.0</junit-jupiter-version>
<maven-surefire-plugin>2.21.0</maven-surefire-plugin>
<junit-platform-runner-version>1.2.0</junit-platform-runner-version>
<junit-platform-surefire-version>1.2.0</junit-platform-surefire-version>
<mockito-junit-jupiter-version>2.18.3</mockito-junit-jupiter-version>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin}</version>
<configuration>
<argLine> javaagent:"${settings.localRepository}"/org/jmockit/jmockit/${jmockit-version}/jmockit-${jmockit-version}.jar
-XX:-UseSplitVerifier -Xmx512m -XX:MaxPermSize=256m ${argLine}
</argLine>
</configuration>
</plugin>
<!-- Testing -->
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>${jmockit-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId> …Run Code Online (Sandbox Code Playgroud)