0
Wie könnte eine Klasseneigenschaft verspottet werden? Die gespottete Eigenschaft funktioniert nicht innerhalb der Klasse.Python mock.patch.object für Eigenschaften
Codebeispiel:
class Box(object):
def __init__(self, size):
self._size = size
@property
def size(self):
return self._size
def volume(self):
print(self.size)
return self.size**3
def get_new_size():
return 42
box = Box(13)
with mock.patch.object(Box, 'size', get_new_size):
print(box.volume())
Returns:
<bound method Box.get_new_size of <__main__.Box object at 0x10a8b2cd0>>
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "<stdin>", line 9, in volume
TypeError: unsupported operand type(s) for ** or pow(): 'instancemethod' and 'int'