MENU

Java-30 JUnit单元测试方法

September 27, 2023 • Read: 66 • Java阅读设置

面向对象编程

参考博客:Junit基本使用

JUnit单元测试方法

1 什么是JUnit

JUnit是一个Java语言的单元测试框架。
多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
注意:Junit 测试也是程序员测试,即所谓的白盒测试,它需要程序员知道被测试的代码如何完成功能,以及完成什么样的功能。

2 JUnit能做什么

使用 Junit 能让我们快速的完成单元测试。
  通常我们写完代码想要测试这段代码的正确性,那么必须新建一个类,然后创建一个 main() 方法,然后编写测试代码。如果需要测试的代码很多呢?那么要么就会建很多main() 方法来测试,要么将其全部写在一个 main() 方法里面。这也会大大的增加测试的复杂度,降低程序员的测试积极性。而 Junit 能很好的解决这个问题,简化单元测试,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。

3 JUnit用法

1) 需要测试的类
2023-09-27T13:57:23.png

2) 不用JUnit测试
2023-09-27T13:58:03.png

3) 用JUnit测试

  • 将需要测试的部分分别写在一个方法中形成一个个测试单元,可以直接运行该类以直接测试所有测试单元,也可以右键每个方法名选择runAs - JUnit以分别测试每个测试单元。
    2023-09-27T13:58:44.png
    2023-09-27T14:00:49.png

4) JUnit注解

  • @Test: 测试方法,即测试单元
  • @Ignore: 被忽略的测试方法:加上之后,暂时不运行此段代码
  • @Before: 每一个测试方法之前运行
  • @After: 每一个测试方法之后运行
  • @BeforeClass: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分before,是所有测试方法
  • @AfterClass: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区分 @After

那么上面的例子,我们可以看到,每个 @Test 方法中都有 Calculator c = new Calculator();即类的实例化,那么我们可以将其放入到 @Before 中
2023-09-27T14:02:50.png

5) 注解用法示例
经测试发现以下注意点:

  • 直接测试类以测试所有方法时,如果存在多个@Test的测试单元,测试单元的测试顺序不是以代码书写顺序执行的。
  • 单独测试一个测试单元时,只能测试@Test的测试单元,不能单独选择别的注解的方法测试,会报错。
    2023-09-27T14:03:39.png
    2023-09-27T14:03:56.png