0
点赞
收藏
分享

微信扫一扫

单元测试要考虑的四个问题

半秋L 2022-03-12 阅读 100
单元测试

文章目录

测试的一个痛点

单元测试,既然称之单元,那就说明是细粒度的测试,例如测试一个函数,而不是整个系统。而测试,顾名思义,就是给函数一个输入,看输出是否符合预期。但是:

输入、输出的分类

输入,不仅包括了函数的参数,还会包含外部依赖,例如读取文件或网络、读取环境变量、全局变量等,我们暂称之隐式输入。输出,不仅包括了函数的返回值,也和输入一样包含了外部依赖,例如文件写入、网络写入等,暂称之隐式输出
因此,为一个函数编写单元测试,需要考虑这四个问题:

  • 显示输入
  • 显示输出
  • 隐式输入
  • 隐式输出

分类后的解决方案

显示的输入、输出都是容易解决的。而对于隐式输入输出,我们要做的就是封装IO然后隔离

  • 隐式输入的隔离:对于这类外部依赖函数,我们关注的是它的返回,因此使用Mock
  • 隐式输出的隔离:对于这类外部依赖函数,我们关注的是它的参数,因此使用Stub

运用

拿到一个待测试函数,不妨先在纸上将这四项列出来,然后对隐式的输入、输出执行相应的Mock或Stub。当然,这些技巧只是解一时之急,更重要的是代码良好的设计,写出可测的代码。

举报

相关推荐

0 条评论