请问接口测试和单元测试之间存在哪些区别?
考察说明
考查候选人对API测试与单元测试在测试层级、对象、上下文和目的上的理解。
回答思路
- 【回答框架 1】单元测试针对源代码中的最小可测单元,通常是函数或方法,由开发人员在编码过程中编写,注重代码逻辑的正确性,运行快且依赖隔离。API测试针对系统对外暴露接口,以HTTP请求验证请求参数、响应状态码、响应体和业务逻辑,侧重系统集成和端到端行为。
- 【回答框架 2】单元测试的主要目的是快速发现代码内部的逻辑错误,支撑重构和回归;API测试的目的是验证接口契约、数据格式、权限控制以及多系统间的交互是否满足预期,通常更贴近用户场景。
- 【回答框架 3】单元测试使用模拟对象或桩件来隔离外部依赖,而API测试往往需要真实环境或测试环境,依赖数据库、缓存和其他服务,因此执行更慢且更容易受环境因素影响。
- 【回答框架 4】从测试金字塔看,单元测试数量最多、成本最低,API测试处于中层,数量较少但覆盖跨模块交互。两者互补,单元测试保障内部质量,API测试保障对外契约,不可相互替代。
- 【关键点 1】单元测试针对代码内部函数或方法,API测试针对对外接口。
- 【关键点 2】单元测试侧重代码逻辑正确性,API测试侧重接口契约和端到端行为。
- 【关键点 3】单元测试依赖隔离,API测试需要完整环境。
- 【关键点 4】测试金字塔中API测试数量少于单元测试,但更贴近用户场景。
- 【易错点 1】不要把API测试等同于接口文档验证,还要覆盖异常流程和边界条件。
- 【易错点 2】不要因为单元测试覆盖率高就忽视API测试,集成问题仍可能出现在接口层。