JAVA 单元测试类

本系列主要目的是做一个知识汇总,如今网上有各种各样的详细教程,如果哪里想了解更多,可以对应去搜索一下,加强理解,这就是精简版的意义。 如果能帮助到你,我很高兴。

测试平台

测试台是一个 程序,其工作是通过一系列称为测试用例的输入/输出检查来彻底测试另一个程序(或部分) 。

单元测试类

单元测试意味着为特定项目(或“单元”)创建和运行测试平台,如方法或类。

public class StatsInfoTest {
   public static void main(String[] args) {
      StatsInfo testData = new StatsInfo();

      // 测试台

      System.out.println("测试开始.");

      // 测试get/setNum1
      testData.setNum1(100);
      if (testData.getNum1() != 100) {
         System.out.println("   测试get/setNum1失败");
      }

      // 测试setNum2
      testData.setNum2(50);
      if (testData.getNum2() != 50) {
         System.out.println("   测试get/setNum2失败");
      }

      // 检测 getAverage()
      testData.setNum1(10);
      testData.setNum2(20);
      if (testData.getAverage() != 15) {
         System.out.println("   对10,20 测试getAverage()失败");
      }

      testData.setNum1(-10);
      testData.setNum2(0);
      if (testData.getAverage() != -5) {
         System.out.println("   对-10, 0 测试getAverage()失败");
      }

      System.out.println("测试完成");
   }
}

一个好的测试平台的特点包括:

  • 自动检查。例如:比较值,如testData.GetNum1() != 100. 为简洁起见,仅打印失败。
  • 独立的测试用例。例如:GetAverage() 的测试用例分配了新的值,而不是依赖于早期的值。
  • 代码覆盖率:执行每一行代码。一个好的测试平台会有比下面更多的测试用例。 不仅包括典型值,还包括 边界情况:不寻常或极端的测试用例值,如 0、负数或大数。

回归测试

通常测试台会与项目一起维护并且保留。

回归测试意思是在项目更改时,重新测试这个项目,如果本次更改能通过之前测试台的测试,则该项目叫已 ”回归“。

留意错误的测试单元也是很重要的,例如要修改一个项目,但是这个项目之前的错误测试单元没有被修改,在我们修改完之后,仍然可能存在遗留的错误。一般这种情况我们会去寻找代码本身的问题,但问题实际上是之前的错误测试单元没有被修改导致的

对于商业软件,测试会占用很大比例的时间。

常用测试框架

最后分享一个测试框架Junit 5.

在这里插入图片描述


版权声明:本文为weixin_46442179原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。