2017-08-03 152 views
0

在我FooClass對象我有self.mylist它由MyObject S和正在從一些數據庫查詢創建的列表。
到目前爲止,在我的測試中,我一直在使用pytest夾具:嘲諷在Python

@fixture 
    def mock_mylist(): 
     foo = FooClass() 
     foo.mylist = MagicMock() 
     return foo 

它工作得很好,當我不得不測試方法,在我需要的只是mylist「有些名單」。然而,該方法之一是依靠mylist並做一些檢查,像

for el in mylist: 
    if el.MyObject.a == 1 and el.MyObject.b == 2 and... 
     #compare el.MyObject.c to some external value and process... 

綜上所述,我需要嘲笑MyObject測試mylist,但我想以某種方式定義一些嘲笑MyObject屬性。

回答

0

準備對象事先:

@fixture 
def mock_mylist(): 
    foo = FooClass() 
    foo.mylist = MagicMock() 
    for el in foo.mylist: 
     el.MyObject.a = 1 
     el.MyObject.b = 2 
     # …and… 
    return foo