本文翻译自Getting Started with JUnit 5: Writing Your First Test

Get Started JUnit 5

在本文中,我们将学习如何编写和运行简单的JUnit5单元测试、如何设置前提条件、与我们想测试的对象进行交互,以及验证程序是否按照预期执行。

本文是JUnit 5 教程的一部分。

设置

附带的源码示例已经包含基于MavenGradle的配置,但为了方便起见,同时也提供了分步教程指南。

编写第一个测试

当我们测试某段代码时,我们希望确保其能够按照预期来运行。在编写自动化测试时基于下述步骤:

  1. 首先,对我们要测试的代码设置前提条件
  2. 接下来,对代码进行交互测试
  3. 最后,检查执行结果是否符合预期

这被称为Arrange,Act,Assert模式。

接下来看一下我们想要测试的代码:

1
2
3
4
5
public class Calculator {
    public int add(int first, int second) {
        return first + second;
    }
}

这是一个非常简单的计算器类,主要用于两数相加,在测试此段代码时,我们希望计算结果是正确的。

我们可基于Arrange,Act,Assert模式按下述步骤实现:

  1. 首先构造一个Calculator类的实例
  2. 然后传递调用add()方法并将结果存储起来
  3. 最后,通过调用assertEquals()来比较实际结果和预期结果
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

class CalculatorTest {
    @Test
    void addNumbers() {
        // Arrange
        Calculator calculator = new Calculator(); <strong>x</strong>
        
        // Act
        int sum = calculator.add(1, 2);
        
        // Asset
        Assertions.assertEquals(3, sum);
    }
}

测试类可以用任何名称,但在本文中我们将测试代码放入CalculatorTest类中,我们将测试类简单叫做addNumbers()以便能够描述我们正在尝试做的事情。

为了能够执行测试,我们需要给测试方法加上@Test注解,通过这种方式测试执行器能将该方法识别为一个测试方法。

运行测试

我们可以有多种方式运行测试代码,当使用IDE工具时可以从IDE工具中直接运行,我们也可以使用像MavenGradle这样的构建工具在命令行中执行测试。

当软件(代码)按照预期执行时,测试结果为pass,当出现预期之外的结果时,测试结果为failed

在 Intellij IDEA中运行

在使用类似Intellij IDEA这类IDE工具时,我们可以直接右键点击测试类并且选择运行CalculatorTest,或者我们可以使用快捷键Ctrl+Shift+F10(Windows系统)和Ctrl+Shift+R(Mac系统)来运行测试。

下图中可以查看在Intellij IDEA中执行JUnit 5测试通过的结果:

Run Test In Intellij IDEA

在Maven中运行

若要使用Maven从命令行运行测试,可执行下述命令:

1
mvn test

之后将能看见类似如下的输出:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.arhohuttunen.CalculatorTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.021 s - in com.arhohuttunen.CalculatorTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

在Gradle中运行

若要使用Gradle从命令行运行测试,可执行下述命令:

1
gradle test

之后将能看见类似如下输出:

1
2
3
> Task :test
com.arhohuttunen.CalculatorTest > addNumbers() PASSED
BUILD SUCCESSFUL in 0s

总结

在这个JUnit 5入门示例中,我们学习了如何编写和运行简单的JUnit 5测试,本文的示例代码能在GitHub中找到。