0

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

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

4

1 回答 1

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'

注意:如果您使用低于 3.3 的 Python 版本,请使用mock.

于 2013-10-08T13:51:52.240 回答