【问题标题】:Assert attribute on mock instance was accessed访问了模拟实例上的断言属性
【发布时间】:2013-10-02 21:37:35
【问题描述】:

如何断言 Mock 和/或 MagicMock 上的属性已被访问?

例如,

from unittest.mock import MagicMock

def foo(x):
    a = x.value

m = MagicMock()
foo(m)
m.attr_accessed('value')    # method that does not exist but I wish did; should return True

检查foo 是否尝试访问m.value 的实际方法是什么?

【问题讨论】:

    标签: python unit-testing mocking


    【解决方案1】:

    您可以按照here 的描述使用 PropertyMock。

    例如,

    from unittest.mock import MagicMock, PropertyMock
    
    def foo(x):
        a = x.value
    
    m = MagicMock()
    p = PropertyMock()
    type(m).value = p
    foo(m)
    p.assert_called_once_with()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      相关资源
      最近更新 更多