JunitTest
记录 Junit 的简单使用方法
学习笔记,仅供参考
在之前的学习中,一直都是在 main 方法中来运行测试代码。但是,通常 main 方法只是一个项目的入口点,而不是用来测试程序或者处理逻辑。所以要避免用 main 方法来测试代码,main 中最好只有几行调用方法。
于是就引进了 Junit ,它是 Java 语言的测试框架
🎨导入 Junit jar
与之前在 OOP 中导入 Lombok jar 的步骤一致
步骤
在 maven 库 中找到 Junit , 下载它的 jar 包
将下好的 jar 包复制到 IDEA 中的 jar 包目录下
然后右键,选择 “add as library …”
想要使用 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 规则和作用
编写测试时要遵循的规则
测试方法用 @Test 修饰
测试方法必须使用
public void
修饰测试方法不能携带参数
测试方法不能是 abstract
测试代码与源码要在两个不同的项目路径下
测试类的包要与被测试的包保持一致
测试单元中的每个方法必须可以独立测试
使用 Junit 的好处在于它使得测试变得单元化,每个方法都能但都测试各不影响,即使某个方法出错,别的方法测试也不会终止。而不像在 main 中测试的那样,一旦其中出现错误,整个程序都会终止,能够更加精确的定位到某个方法。