lsekfe 发表于 2022-7-6 09:23:59

Junit4入门之什么是单元测试?

干了一年多的后端了,从来没有了解过单元测试。虽然我知道测试不仅仅是测试们的任务,后端也要进行自测来保证自己的代码的可用性,但我一直都只是用postman来实施的,调用调通了即可。虽然我也知道Junit是用于测试的软件,项目里也引入过,但真的就只是点到为止,除了引入就没用过。。之前是小外包公司,不需要你整这些没用的,现在进了比较看重编码质量的公司,就需要写单元测试的任务了。一方面是上面要求不得不学习,一方面也是对自己以后面试之类的有帮助,最后一方面就是希望学好单元测试后真的能对项目有帮助吧。
  什么是单元测试?
  首先我们得知道单元测试是个啥,一点点的学进去。
  百度百科:单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。
  可以看出,单元测试是一种对代码模块的测试,但它的特点是:小,是我们人为规定的最小的被测功能模块。所以绝对不能太久,据说即便是上千个单元测试,也可以在10秒内跑完。很多公司并没有严格界定单元测试的标准,将功能测试误以为是单元测试,认为只要使用了Junit就是单元测试,其实并不是这样。单元测试的特点是小,一般都是按方法为单位。也有以类为单位的,勉强也可以算进去。但是不能一次涉及多个类,如果是那样,那就是功能测试而不是单元测试了。
  举例:
  单元测试是用来对一个模块、一个函数或者一个类来进行正确性校验的测试工作。
  例如现在要对函数abs(int i)进行测试(Java里获取绝对值的函数),首先我们可以编写出以下几个测试用例:
  1) 输入正数,例如1、2、3,预期返回值与输入参数相同
  2) 输入负数,例如-1、-2、-3,预期返回值与输入参数相反
  3) 输入0,预期返回值也是0
  4) 输入非数值类型,例如List或任意类,预期会发生异常
  把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。
  如果单元测试通过,说明我们测试的这个函数能够正常工作。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复代码使单元测试能够通过。
  这就是单元测试的目的,用于减轻我们开发自测的负担,避免开发时,不小心修改影响到以前的功能。

页: [1]
查看完整版本: Junit4入门之什么是单元测试?