My Blog

JunitTest

记录 Junit 的简单使用方法

学习笔记,仅供参考

参考B站Mirco_Frank - java 进阶 | Junit 官网 | 知乎上 Junit 详解


在之前的学习中,一直都是在 main 方法中来运行测试代码。但是,通常 main 方法只是一个项目的入口点,而不是用来测试程序或者处理逻辑。所以要避免用 main 方法来测试代码,main 中最好只有几行调用方法。

于是就引进了 Junit ,它是 Java 语言的测试框架

🎨导入 Junit jar

与之前在 OOP 中导入 Lombok jar 的步骤一致

步骤

  1. maven 库 中找到 Junit , 下载它的 jar 包

  2. 将下好的 jar 包复制到 IDEA 中的 jar 包目录下

  3. 然后右键,选择 “add as library …”

  4. 想要使用 Junit 时,使用注解 @Junit 即可使用 Junit 框架

注意有的 jar 包可能要引入依赖,所以当有的包不能用时,要考虑到是否需要依赖

⛳ Junit 使用

下面是一个使用 Junit 测试加法方法的示例

class MyFirstJunitTest {
    // 引入注解,使用 Junit
    @Test
    public void test() {
        Calculator calc = new Calculator();
        int sum = calc.add(1, 2);
        // 调用 Assert (断言) 类中的 assertEquals(long expected, long actual);
        Assert.assertEquals(3, sum);
    }
}

/**************分割线******************/

class Calculator {
    // Calculator 中的 add 方法
    public int add(int numberA, int numberB) {
        return numberA + numberB;
    }
}

测试的运行图如下:

测试成败对比

其中,Assert.assertEquals(expected, actual) 来判断是否期望值是否与实际值相等,相等则通过;否则抛出异常,测试不通过

该方法还有很多的重载方法,依次来判断不同类型的变量。例如: 对于 double 类型有 Assert.assertEquals(expected, acutal, delta),因为计算机的浮点数是不精准的,所以用 δ 表示两浮点数的可接受的误差


🧊 Junit 规则和作用

编写测试时要遵循的规则

  1. 测试方法用 @Test 修饰

  2. 测试方法必须使用 public void 修饰

  3. 测试方法不能携带参数

  4. 测试方法不能是 abstract

  5. 测试代码与源码要在两个不同的项目路径下

  6. 测试类的包要与被测试的包保持一致

  7. 测试单元中的每个方法必须可以独立测试

使用 Junit 的好处在于它使得测试变得单元化,每个方法都能但都测试各不影响,即使某个方法出错,别的方法测试也不会终止。而不像在 main 中测试的那样,一旦其中出现错误,整个程序都会终止,能够更加精确的定位到某个方法。

unit testing