You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

测试中通过继承其他类重写父类方法的模式是否有专属名称?

这种实现模式的名称及说明

你这种通过多重继承注入模拟依赖的做法,属于**测试替身(Test Double)范畴里的模拟对象(Mock Object)**实现方式,是单元测试中隔离外部依赖的常见技巧之一。

具体说明:

  • 测试替身是单元测试里用来替代真实外部依赖的通用概念,目的是让测试不依赖外部系统(比如数据库、第三方API),保证测试的稳定性和速度。
  • 你这里的MockDatabase就是一个模拟对象,它重写了原类中依赖外部资源的方法,预设了固定返回值。
  • 通过让TestAPI同时继承MockDatabase和API,利用Python的方法解析顺序(MRO),模拟方法会优先被调用,从而覆盖原类中依赖外部的逻辑,实现测试隔离。

示例代码整理:

api.py

class API:
    ...
    def get_names(self) -> list[str]:
         names = self._fetch_names_from_database()  # 调用外部资源
         # 执行其他操作...
         return names

test_api.py

from api import API

class MockDatabase:
    def _fetch_names_from_database(self, *args, **kwargs):
        return ["test_name_1", "test_name_2"]

class TestAPI(MockDatabase, API):
    pass

test_api = TestAPI()
# 对test_api.get_names()执行单元测试

内容的提问来源于stack exchange,提问作者connesy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:01:24