Skip to content

何谓单元测试?

  • 单元测试通常不依赖外部依赖,会用到:
    • Fake(伪对象):
      • 一般通过 Map 等存放实际需要通过数据库请求获取的数据,跳过数据库依赖,在内存模拟。
      • 可以具备修改等能力。
      • 适用于可重用的具体实现,可以看成和真实一致的,只是数据模拟。
    • Stub(存根):需要从依赖获取数据时,直接指定预定义的数据,比 Fake 还要直接。
      • 通常只是查询。
      • 可复用的硬编码响应,只有特定的值。
    • Mock(模拟对象):将
      • 单个测试使用,不能复用。
  • 单元测试:
    • 程序最小的可测试部件
    • 为重构提供信心,降低重构的成本:每次修改都能通过单元测试保证和原来一致。
    • 提高代码质量:降低代码耦合,尽量单一职责
    • 减少 bug:每个实现都是符合预期的
    • 快速定位 bug:如果程序有 bug,运行全部单元测试,找到不通过的,就是 bug 所在。
    • CI可以依赖单元测试,自动发现错误
  • TDD(Test-Driven Development,测试驱动开发):一种设计方法论:
    • 先编写测试用例,之后针对用例实现代码,使其能够通过。
    • 可以先整理思路再开始实现,减少出 bug 的概率。
    • 但是设计测试案例会很难。
  • 单测框架:
    • Java
      • JUnit:
      • Mockito:

正在精进