gpt4 book ai didi

junit - 从 Junit 4 到 Junit 5 的迁移问题

转载 作者:行者123 更新时间:2023-12-04 10:33:46 31 4
gpt4 key购买 nike

我正在将我的代码库从 junit4 迁移到 junit5。我在我的测试用例中使用了 mockito。下面是我用于依赖项的不同版本。

<junit.jupiter.version>5.2.0</junit.jupiter.version>
<junit.platform.version>1.2.0</junit.platform.version>
<org.mockito.version>1.10.19</org.mockito.version>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>2.19.0</version>
<scope>test</scope>
</dependency>

我已经使用了注释 @RunWith(MockitoJUnitRunner.class)运行我的模拟代码。用 @ExtendWith(MockitoExtension.class) 替换相同的代码

但是当我运行测试用例时,我收到以下错误。任何解决此问题的建议。我怀疑是否存在导致此问题的任何依赖版本问题。
java.lang.NoClassDefFoundError: org/mockito/quality/Strictness
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.getDeclaredConstructor(Class.java:2178)
at..

谢谢
-山姆

最佳答案

JUnit5 MockitoExtension用途 org.mockito.quality.Strictness所以为了使用MockitoExtension您需要使用 mockito-core 的版本其中包含 org.mockito.quality.Strictness . mockito-core:1.10.19不包含该类,因为该类是在 Mockito 2.x 中添加的。所以,为了使用MockitoExtension您至少需要使用 mockito-core 的 2.x 版.

Mockito 文档没有明确说明这一点,但我怀疑期望您将为 mockito-core 使用相同的 Mockito 版本。和 mockito-junit-jupiter .

以下依赖项将允许您使用 JUnit5 MockitoExtension成功地:

<org.mockito.version>2.19.0</org.mockito.version>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${org.mockito.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${org.mockito.version}</version>
<scope>test</scope>
</dependency>

关于junit - 从 Junit 4 到 Junit 5 的迁移问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52535857/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com