Skip to content

单元测试的定义

在编写单元测试的过程中可能会遇到一些问题,使开发者对如何去编写测试产生无力感,进一步导致编写单元测试逐渐成为开发的额外负担

以下是两个经典的问题

  • 如何对私有函数进行测试
  • 在业务逻辑发生改动时需要时常调整测试代码

对第一个问题的解决方法,可能第一时间会想到,增加 export 来导出函数。这种方式确实能使外部获取到函数,但这种操作破坏了模块的封装性,是不可取的

第二个问题在开发中经常会遇到,也是阻止开发者去接受单元测试的主要因素。测试代码与逻辑代码的高度耦合,导致牵一发而动全身的效果

这两个问题的存在主要因为开发者对测试对象的错误幻想,过分的期望每一个逻辑都应该进行单元测试。这是一种错误的观念,在业务的开发过程中,不应该将颗粒度细分到具体的逻辑上去,而更应该关注业务的本身

单元级别的功能测试

对业务逻辑最好的处理方式应该关注功能的实现,无论功能内部的逻辑如何的去调整,只要入参和出参满足期望,那么这个测试就是应该通过的