Shaw0xyz 发表于 2024-7-12 15:34:02

JUnit 单元测试 基础学习教程

本帖最后由 Shaw0xyz 于 2024-7-13 16:16 编辑

1. 引言

单元测试是软件开发过程中非常重要的一环。它能够确保每一小段代码按预期工作,防止错误的传播。在Java中,JUnit是最常用的单元测试框架。本教程将带你了解JUnit的基本用法,帮助你掌握单元测试的基本技能。

1.1 JUnit简介

JUnit是一个开源的Java单元测试框架,主要用于测试方法的行为是否符合预期。它提供了一组注解和断言方法,帮助开发者方便地编写和运行测试用例。

1.2 JUnit环境配置

在开始编写JUnit测试之前,我们需要先配置开发环境。以下步骤将指导你如何在项目中添加JUnit依赖。

(1) 如果你使用的是Maven构建工具,可以在pom.xml文件中添加以下依赖:

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>

(2) 如果你使用的是Gradle构建工具,可以在build.gradle文件中添加以下依赖:

    testImplementation 'junit:junit:4.13.2'

1.3 JUnit注解

JUnit提供了一组注解用于标识测试方法和生命周期方法。常用的注解如下:

(1) @Test:标识一个测试方法。

(2) @Before:在每个测试方法执行前执行。

(3) @After:在每个测试方法执行后执行。

(4) @BeforeClass:在所有测试方法执行前执行,仅执行一次。

(5) @AfterClass:在所有测试方法执行后执行,仅执行一次。

(6) @Ignore:忽略某个测试方法。

2. 编写第一个JUnit测试

接下来,我们将编写一个简单的JUnit测试来演示基本用法。

2.1 创建被测试类

首先,我们需要创建一个被测试的类。假设我们有一个简单的Calculator类,包含加法和减法方法。

    public class Calculator {
      public int add(int a, int b) {
            return a + b;
      }

      public int subtract(int a, int b) {
            return a - b;
      }
    }

2.2 编写测试类

接着,我们为Calculator类编写测试类。测试类中包含针对add和subtract方法的测试用例。

    import org.junit.Before;
    import org.junit.Test;
    import static org.junit.Assert.*;

    public class CalculatorTest {
      private Calculator calculator;

      @Before
      public void setUp() {
            calculator = new Calculator();
      }

      @Test
      public void testAdd() {
            assertEquals(5, calculator.add(2, 3));
      }

      @Test
      public void testSubtract() {
            assertEquals(1, calculator.subtract(3, 2));
      }
    }

3. 运行JUnit测试

运行JUnit测试有多种方式。你可以使用IDE内置的JUnit运行器,或者使用Maven或Gradle命令来运行测试。

3.1 使用IDE运行

大多数Java IDE(如Eclipse、IntelliJ IDEA)都内置了JUnit运行器。你只需右键点击测试类文件,然后选择“Run As -> JUnit Test”即可运行测试。

3.2 使用Maven运行

如果你使用Maven构建项目,可以在命令行中运行以下命令来执行测试:

    mvn test

3.3 使用Gradle运行

如果你使用Gradle构建项目,可以在命令行中运行以下命令来执行测试:

    gradle test

4. 断言与异常测试

在单元测试中,断言用于验证测试结果是否符合预期。JUnit提供了多种断言方法,常用的有assertEquals、assertTrue、assertFalse等。

4.1 断言示例

    @Test
    public void testAddition() {
      assertEquals(4, calculator.add(2, 2));
      assertTrue(calculator.add(1, 1) == 2);
      assertFalse(calculator.add(1, 1) == 3);
    }

4.2 异常测试

有时,我们需要验证方法是否抛出了预期的异常。可以使用@Test注解的expected属性来实现。

    @Test(expected = ArithmeticException.class)
    public void testDivideByZero() {
      calculator.divide(1, 0);
    }

5. 总结

本教程介绍了JUnit的基础知识,包括环境配置、注解使用、编写测试用例和运行测试等内容。通过掌握这些基本技能,你可以更有效地编写和维护单元测试,确保代码的质量和稳定性。









/ 荔枝学姐de课后专栏 /

Hi!这里是荔枝学姐~

欢迎来到我的课后专栏

自然语言学渣 NLP摆烂姐

热衷于技术写作 IT边角料

AIGC & Coding & Linux ...

~互撩~ TG: @Shaw_0xyz
页: [1]
查看完整版本: JUnit 单元测试 基础学习教程