在本文中,我们将快速回顾一下 JUnit 的@Test注释。此注释为执行单元测试和回归测试提供了强大的工具。
2. 专家配置要使用最新版本的 JUnit 5,我们需要添加以下 Maven 依赖项:
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.9.2</version> <scope>test</scope></dependency>
我们使用测试范围,因为我们不希望 Maven 在最终构建中包含此依赖项。由于 surefire 插件本身并不完全支持 JUnit 5,我们还需要添加一个提供程序,它告诉 Maven 在哪里可以找到我们的测试:
<plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <dependencies> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-surefire-provider</artifactId> <version>1.0.2</version> </dependency> </dependencies></plugin>
在我们的配置中,我们将使用 surefire 2.19.1。
3. 被测方法首先,让我们构建一个简单的方法,我们将在测试场景中使用它来展示@Test注释的功能:
public boolean isNumberEven(Integer number) { return number % 2 == 0;}
如果传递的参数是偶数,则此方法应返回 true,否则返回 false。现在,让我们看看它是否按预期方式工作。
4. 测试方法对于我们的示例,我们要专门检查两个场景:
当给定偶数时,该方法应返回 true当给定一个奇数时,该方法应返回 false这意味着实现代码将使用不同的参数调用我们的 isNumberEven 方法,并检查结果是否符合我们的预期。
为了使测试被识别为这样,我们将添加@Test注释。我们可以在课堂上拥有任意数量的这些内容,但只将相关的放在一起是一种很好的做法。另请注意,测试不能是私有的,也不能返回值,否则只会被忽略。
鉴于这些考虑,让我们编写测试方法:
@Testvoid givenEvenNumber_whenCheckingIsNumberEven_thenTrue() { boolean result = bean.isNumberEven(8); Assertions.assertTrue(result);}@Testvoid givenOddNumber_whenCheckingIsNumberEven_thenFalse() { boolean result = bean.isNumberEven(3); Assertions.assertFalse(result);}
如果我们现在运行 Maven 构建,surefire 插件将遍历 src/test/java 下类中的所有注释方法并执行它们,如果发生任何测试失败,则会导致构建失败。
如果您来自 JUnit 4,请注意,在此版本中,注释不接受任何参数。 为了检查超时或抛出的异常,我们将改用断言:
@Testvoid givenLowerThanTenNumber_whenCheckingIsNumberEven_thenResultUnderTenMillis() { Assertions.assertTimeout(Duration.ofMillis(10), () -> bean.isNumberEven(3));}@Testvoid givenNull_whenCheckingIsNumberEven_thenNullPointerException() { Assertions.assertThrows(NullPointerException.class, () -> bean.isNumberEven(null));}5. 结论
在本文中,我们展示了如何使用@Test注释实现和运行简单的 JUnit 测试。
眼看着《上古卷轴6》遥遥无期,玩家们只好通过各式各样的MOD来为老滚5增添活力。近日,玩家Billyro、Drunkzealot、Zikoru为《上古卷轴5:天际》特别版制作了一款非常有趣的MOD,为游戏扩展超过100种新武器,其中大多是剑类武器。
根据MOD作者的说法,游戏中的所有武器都重新进行了平衡,玩家还可以进行制作、分解等。值得一提的是,这些武器都拥有着高质量,且源自于游戏中的那些原版武器。
这款MOD为1GB左右,感兴趣的朋友可以移步这里进行下载。如上所述,该MOD只适用于《上古卷轴5:天际》特别版。
游戏画面: