从零开始学习Java测试:新手入门路线图

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

“没有测试的代码就是遗留代码”:为什么你应该今天就开始

\n\n

想象一下:你写了一个Java应用程序。它能运行。但你害怕做任何改动,因为一个错误的操作——一切就会崩溃。熟悉吗?欢迎来到一个Java测试不是一种奢侈,而是一种生存技能的世界。

\n\n

许多初学开发者把测试推迟到“以后”。比如,先学会写代码,然后再处理测试。但事实是,Java单元测试不是额外的负担,而是你的安全绳。它们迫使你编写更高质量、更模块化、更清晰的代码。是的,雇主非常看重那些能够用测试覆盖代码的开发者。

\n\n

在这篇文章中,我们将讨论新手该从哪里开始Java测试。你将了解主要工具——JUnit和Mockito,编写你的第一个测试,并理解如何避免陷入“为了测试而测试”的陷阱。开始吧!

\n\n

第一步:环境配置——你的第一个测试平台

\n\n

在编写测试之前,你需要准备好环境。好消息是:对于Java测试自动化,你不需要任何特别的东西。你已有的东西——JDK和IDE(IntelliJ IDEA或Eclipse)就足够了。

\n\n

Maven还是Gradle——选择构建工具

\n\n

现代Java项目很少能离开构建系统。我们将使用Maven——它是大多数项目的事实标准。以下是一个用于测试的最小pom.xml依赖配置:

\n\n
<dependencies>\n    <!-- JUnit 5 — 主要的测试框架 -->\n    <dependency>\n        <groupId>org.junit.jupiter</groupId>\n        <artifactId>junit-jupiter-api</artifactId>\n        <version>5.10.0</version>\n        <scope>test</scope>\n    </dependency>\n    \n    <!-- Mockito用于创建模拟对象 -->\n    <dependency>\n        <groupId>org.mockito</groupId>\n        <artifactId>mockito-core</artifactId>\n        <version>5.6.0</version>\n        <scope>test</scope>\n    </dependency>\n</dependencies>
\n\n

注意<scope>test</scope>——这些库不会进入最终的应用构建,它们只用于运行测试。

\n\n

第二步:JUnit——你的第一个真正的测试

\n\n

JUnit是构建所有Java测试的基础。使用它,你可以编写单元测试:在隔离环境中检查一个方法或类的行为。

\n\n

编写第一个测试

\n\n

假设我们有一个简单的计算器:

\n\n
public class Calculator {\n    public int add(int a, int b) {\n        return a + b;\n    }\n    \n    public int divide(int a, int b) {\n        if (b == 0) {\n            throw new IllegalArgumentException("不能除以零!");\n        }\n        return a / b;\n    }\n}
\n\n

现在为它编写测试。在src/test/java文件夹中创建一个类:

\n\n
import org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.*;\n\nclass CalculatorTest {\n    \n    private final Calculator calculator = new Calculator();\n    \n    @Test\n    void testAdd() {\n        // Arrange(准备)\n        int a = 2;\n        int b = 3;\n        \n        // Act(操作)\n        int result = calculator.add(a, b);\n        \n        // Assert(验证)\n        assertEquals(5, result, "2 + 3 应该等于 5");\n    }\n    \n    @Test\n    void testDivideByZero() {\n        // 验证方法抛出异常\n        assertThrows(IllegalArgumentException.class, \n            () -> calculator.divide(10, 0));\n    }\n}
\n\n

运行测试——IDE中的绿色条会告诉你一切正常。恭喜,你刚刚迈出了unit testing Ja的第一步。

博客

书籍推荐