跳转至

单元测试

单元测试(Unit Testing)又称为模块测试

将程序分解成独立的可测试的模块,一般是函数、方法、类等代码组织单元,然后对这些单元模块进行正确性检验的测试。

良好的单元测试可以视为一种文档,显示函数或方法应该如何使用,以及在给定输入时应该返回什么。

原则

3A + 清理

  • 准备(Arrange),初始化测试对象,准备测试数据
  • 执行(Act),调用被测方法
  • 断言(Assert)
  • 清理(Clear)

覆盖率

代码覆盖率是度量测试是否全面的指标之一

但不要过分关注测试覆盖率,单元测试不应该包罗万象,不同粒度的测试应该关注不同的点,它们之间是互补的关系

插桩

插桩是一种在软件代码中插入额外代码的技术,用于监控和测量程序的行为、性能、资源使用情况等。这些额外代码被称为”桩”(probes)。

  • 代码覆盖率分析:插入代码以跟踪哪些代码路径被执行,帮助评估测试覆盖率。
  • 性能分析工具:如 Profiler 工具,通过插桩收集性能数据。
  • 运行时监控:监控系统或应用程序在运行时的状态和行为。
import time

def some_function():
    print("Executing some_function")

# 插桩代码
def instrumented_function():
    start_time = time.time()
    some_function()
    end_time = time.time()
    print(f"Execution time: {end_time - start_time} seconds")

instrumented_function()

框架

  • Java:JUnitTestNG
  • JS:Mocha + Chai
  • Python:UnittestPytest

20240623235040