2012-11-01 70 views
2

我想要一個虛擬對象,我可以在python中實例化並以編程方式爲通過setattr()創建屬性。我想在python中創建一個模擬對象

我嘗試了內置對象,但可能是因爲沒有工作的好理由。

我可以在python中使用什麼基礎對象來達到這個目的,而不需要自己定義一個基礎對象?

回答

7

不能使用mock = object(),而不僅僅是創建object

class Mock(object): 
    pass 

mock = Mock() 

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

派生如果您使用嘲諷庫(例如mock)然後你做什麼都會調用該對象的斷言一個模擬。你可能會也可能不想這樣做。

0

你想要的改進,喬恩·克萊門特的技術,如果你的模擬對象,以獲取在創建一些屬性:

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)