我想在python中创建一个模拟对象

时间:2012-11-01 19:36:50

标签: python object setattr

我想要一个虚拟对象,我可以在python中实例化,并以编程方式为via setattr()创建属性。

我在内置对象上尝试了它,但可能是因为没有用的原因。

我可以在python中使用什么基础对象来实现这些目的,而不是自己定义一个?

3 个答案:

答案 0 :(得分:8)

您无法使用mock = object(),只需创建一个源自object的模拟

class Mock(object):
    pass

mock = Mock()

setattr(mock, 'test', 'whatever')

答案 1 :(得分:0)

如果您使用模拟库(例如mock),那么您可以对该对象调用的内容进行断言。你可能想也可能不想这样做。

答案 2 :(得分:0)

对Jon Clement技术的改进,以防您希望模拟对象在创建时获得某些属性:

class Mock(object):
    def __init__(self, **kwArgs):  # constructor turns keyword args into attributes
       self.__dict__.update(kwArgs)


# now you can do things like this:
options = Mock(verbose=True, debug=False)