我在模块abc.myModule
中定义了一个类:
Class MyClass:
def __init__(self, a):
self.a_value = a
现在,我的脚本可以:
c = MyClass('a')
print c.a_value
现在在上面的单元测试中,我想修补MyClass
,以便MyClass
的任何对象都将为其XYZ
返回'a._value()
'。所以我这样做:
@patch('abc.myModule.MyClass, a_value=True)
此补丁将使MyClass
返回.a_value()
为True,但是MyClass
的任何对象仍未定义a_value。我该怎么做才能纠正这个问题?
答案 0 :(得分:1)
调用MyClass
时创建MyClass
的对象。因此,您只需要确保在a_value
的返回值上设置MyClass
:
@patch('abc.myModule.MyClass', a_value=True)
def test_something(self, mock_myclass):
mock_myclass.return_value.a_value = True # Ensure a_value is set for objects