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

如何测试对象方法是否被调用?Mock使用报错排查

解决Mock验证对象B的process方法调用失败问题

问题原因

  • Patch路径错误:当前patch的是"b.B",但A类中已将B导入自身命名空间,实际实例化的是A模块内的B引用,因此patch路径需改为"a.B"。
  • 断言对象错误:mock_b是B类的模拟对象,process是实例方法,需断言实例(即mock_b.return_value)的process方法,而非类本身的process属性。

修改后的测试代码

import unittest
from unittest.mock import patch

from a import A


class TestA(unittest.TestCase):
    @patch("a.B")  # 修正patch路径为A模块内的B引用
    def test_b_call(self, mock_b):
        a = A()
        a.process('B')
        # 验证实例的process方法被调用一次
        mock_b.return_value.process.assert_called_once()

额外提示

注意到A类中的初始化方法__inti_know_processes存在拼写错误(正确应为__init_know_processes),建议修正以避免潜在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:18:13