Python模拟返回getattr()

2024-09-27 07:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:我可能掉进了XY问题的陷阱。这是我真正想要的know。在

我有以下功能:

def foo():
  bar = funcToGetBar()
  return bar.getattr("some_attr", None)

在我的测试中,我试图做到:

^{pr2}$

现在我要做的是将expected_return_val提供到bar对象的some_attr属性中。在

我尝试过使用PropertyMock:

type(mocked_bar).getattr = PropertyMock(return_value=expected_return_value)

运行测试时,我得到错误:

TypeError: 'list' object is not callable

如果return_value设置为标量(不是列表),则实函数中的getattr调用的结果是一个模拟,而不是我提供的标量。在

另外,我担心模拟出getattr方法,因为它是一个常见的方法,可能会在函数的其他地方使用。我如何在测试中的模拟对象的属性上设置一个列表?在


Tags: 对象方法函数编辑列表return属性value

热门问题