python存根框架的属性

时间:2013-10-08 13:38:47

标签: python python-3.x mocking mockito stub

有没有人知道一个模拟或存根框架,它允许像这个装饰器一样存根属性甚至类属性

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,但这不允许存根属性。

1 个答案:

答案 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