2011-07-21 48 views
1

(我是一個新手蟒)模擬的方法的對象,是不是在蟒蛇參數

我一直在尋找:Mocking out objects and methods

,我想知道如果我能在替換對象這是不作爲參數傳遞蟒蛇方法,可以說,我的方法是這樣的:

def mypymethod(param1) 
    myresult = os.path.something 
    return myresult 

,我希望測試mypymethod但是我希望os.path中,在這種情況下返回「yourmockresult」我的呼喚它來自我的測試方法

無論如何,我可以做到這一點? 謝謝!!

回答

1

您應該使用Michael Foord的Mock模塊。

從文檔:

>>> from mock import Mock 
>>> real = ProductionClass() 
>>> real.method = Mock(return_value=3) 
>>> real.method(3, 4, 5, key='value') 
3 
>>> real.method.assert_called_with(3, 4, 5, key='value') 
+0

讓你在我的情況下,意味着我可以做os.path.isdir =假,當我調用一些方法myMethod的這將調用os.path.isdir然後os.path中。 isdir會返回我的模擬值? – Jas

+0

絕對....! –

+0

謝謝!我只是試過它,它絕對驚人!每個單元測試者的夢想!!!,有什麼框架可以在java中做同樣的事情嗎? – Jas