Neo Anderson's Blog

(UT)单元测试相关tip

字数统计: 503阅读时长: 1 min
2021/08/13

援引

单元测试? 集成测试? ,
  • 单元测试的意义是测试”单元”, 测试自己写的代码该怎么样, 而不是别人的代码该怎么办.
  • 单元测试是保证软件质量的第一步. 可以没有集成测试,但是单元测试一般是必须的.
  • 单元测试的目标是测试逻辑逻辑自恰, 测试逻辑是否按预期发生. “预期”指屏蔽主观影响的输入产出主观的输出;
  • 单元测试关注程序语义, 而架构设计关注自然语义
TDD,BDD一类的都是啥?
  • 一般代码开发的最佳实践?
    • 写基本逻辑
    • 逻辑优化
    • 在外部依赖, 复杂依赖逻辑出添加断言assert
    • 添加性能统计埋点
    • 单元测试
    • 集成测试
    • 冒烟测试, 系统测试(关注性能, 执行预期)
写测试用例,到底写什么
  • 测试用例构建考虑哪些方向?

    • fake构建随机多类型,范围输入, java验证npe,ioe等基础问题
    • 验证临界问题, 字段数据类型边界集等
    • 过程式/低效式实现一个复杂逻辑/算法, 验证原有设计;
    • 一般尽量保证覆盖率逻辑100%,行70%+;
  • 函数桩怎么打?

    • 抛弃入参本身的构造逻辑, 关注点集中在函数本身
    • 单元测试关注程序语义, 核心是确认是否安与执行指定的流程;
    • 举个栗子🌰?
      • 一个函数想象成为现实生活中门锁锁芯, 无论你安装到小区防盗门, 小区大门,还是医院的x-ray门, 只要你按照锁芯结构要求, 让锁芯达到预期的形状, 就能打开门锁; 而且多个人同时解锁同样锁芯, 那肯定是同样规格的多个锁芯, 而不会是多个人同一个锁芯;
  • 一些场景的测试case
    • try,catch包裹的代码?
    • “死循环”的代码?
CATALOG
  1. 1. 单元测试? 集成测试? ,
  2. 2. TDD,BDD一类的都是啥?
  3. 3. 写测试用例,到底写什么