Python面试题更新 2026-08-05

在软件测试工作中,请说明采用 unittest 框架的具体实践方法。

测试编码实现风险判断技术原理Pythonunittest

考察说明

考查候选人对 Python unittest 框架的掌握程度,包括基本用法、测试组织方式及断言方法。

回答思路

  1. 【回答框架 1】unittest 是 Python 标准库中的单元测试框架,通过 unittest.TestCase 类组织测试用例,支持测试固件(setUp/tearDown)、断言方法和测试运行器。基本用法包括导入 unittest、创建继承 TestCase 的测试类、编写以 test 开头的方法、使用 assertEqual 等断言,最后通过 unittest.main() 运行测试。
  2. 【回答框架 2】测试固件用于设置和清理测试环境,setUp 方法在每个测试方法前执行,tearDown 在每个测试方法后执行。类级固件 setUpClass 和 tearDownClass 在类开始和结束时各执行一次,适用于创建重量级资源。测试方法之间相互独立,避免依赖。
  3. 【回答框架 3】unittest 支持测试套件(TestSuite)和测试加载器(TestLoader),可以将多个测试类组合执行,并通过多种测试运行器输出结果。支持跳过测试(@unittest.skip)和预期失败(@unittest.expectedFailure)。
  4. 【回答框架 4】使用 unittest.mock 可以模拟外部依赖,如数据库或网络请求,提高测试隔离性。断言方法包括 assertEqual、assertTrue、assertRaises 等,需根据测试目的选择合适的断言。
  5. 【回答框架 5】测试执行时建议使用命令 python -m unittest 或测试发现机制自动运行所有测试,并可结合覆盖率工具评估测试覆盖情况。
  6. 【关键点 1】unittest 通过 TestCase 类和 test 方法组织测试,使用断言验证结果。
  7. 【关键点 2】setUp/tearDown 控制每个测试用例的初始化和清理,保证测试独立性。
  8. 【关键点 3】使用 unittest.mock 模拟外部依赖,降低耦合。
  9. 【关键点 4】支持测试套件、跳过、预期失败等高级特性。
  10. 【易错点 1】测试方法命名必须符合 test 开头规则,否则不会被自动发现。
  11. 【易错点 2】不要在测试方法之间共享状态,以免影响测试结果的确定性。
  12. 【易错点 3】断言时避免使用 print 和手动比较,应使用标准断言方法以获取详细信息。