我想要一个虚拟对象,我可以在python中实例化,并以编程方式为via setattr()创建属性。
我在内置对象上尝试了它,但可能是因为没有用的原因。
我可以在python中使用什么基础对象来实现这些目的,而不是自己定义一个?
答案 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)