有没有人知道一个模拟或存根框架,它允许像这个装饰器一样存根属性甚至类属性?
class classproperty:
"""
Decorator to read-only static properties
"""
def __init__(self, getter):
self.getter = getter
def __get__(self, instance, owner):
return self.getter(owner)
class Foo:
_name = "Name"
@classproperty
def foo(cls):
return cls._name
我目前正在使用mockito,但这不允许存根属性。
答案 0 :(得分:2)
使用unittest.mock.PropertyMock
(自Python 3.3起可用):
from unittest import mock
with mock.patch.object(Foo, 'foo', new_callable=mock.PropertyMock) as m:
m.return_value = 'nAME'
assert Foo.foo == 'nAME'
注意:如果您使用的Python版本低于3.3,请使用mock
。