Java使用junit框架进行代码测试过程详解

我写了一个时间工具类 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);
    }
}

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

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

使用junit

文档

https://junit.org/junit4/

https://github.com/junit-team/junit4

依赖

<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);
    }
}

注意:测试类的命名规则: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

原文地址:https://pengshiyu.blog.csdn.net/article/details/129061784