Java:使用junit进行代码测试

时间:2023-02-16 19:59:40

我写了一个时间工具类 DateTimeUtil, 里边有一个格式化为字符串的方法

现在我写了一个main函数来测试这个方法

package com.example;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeUtil {
    /**
     * 时间对象格式化为字符串
     *
     * @param date
     * @return
     */
    public static String toDateString(Date date) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        return formatter.format(date);
    }

    public static void main(String[] args) {
        Date now = new Date();
        String nowString = DateTimeUtil.toDateString(now);
        System.out.println(nowString);
        // 2023-02-16
    }
}

如果,我在这个工具类中多增加几个方法,那么main方法的代码就需要来回改动

这时候可以借助IDE和测试类来实现多个方法的测试

使用junit

文档

依赖

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

maven 项目结构

$ tree
.
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── DateTimeUtil.java
    │   └── resources
    └── test
        ├── java
        │   └── com
        │       └── example
        │           └── DateTimeUtilTest.java
        └── resources

DateTimeUtil.java

package com.example;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeUtil {
    /**
     * 时间对象格式化为字符串
     *
     * @param date
     * @return
     */
    public static String toDateString(Date date) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        return formatter.format(date);
    }
}

DateTimeUtilTest.java

package com.example;

import org.junit.Test;

import java.util.Date;

public class DateTimeUtilTest {
    @Test
    public void toDateString() {
        Date now = new Date();
        String nowString = DateTimeUtil.toDateString(now);
        System.out.println(nowString);
        // 2023-02-16
    }
}

注意:测试类的命名规则:xxxTest.java

这样依赖,代码看起来就干净整洁了

使用命令行运行测试

$ mvn test
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.example.DateTimeUtilTest
2023-02-16
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.059 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0