有谁知道一个模拟或存根框架,它允许像这个装饰器那样存根属性甚至类属性?
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,但这不允许对属性进行存根。
使用 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
。