2016-09-15 60 views
0

如何檢查函數b()是否被方法調用?如何檢查函數是否被方法調用?

class hello(): 
    delete(): 
     b() 

我想在單元測試中使用模擬。

+0

你有什麼限制?你可以修改'b'嗎?還是monkeypatch呢?你實際上是在問[覆蓋範圍](https://docs.python.org/devguide/coverage.html)嗎? – zvone

+0

我不能修改b,我只需要檢查它是否在hello()被調用時使用特定參數進行調用。 –

+0

您是否閱讀過[unittest.mock](https://docs.python.org/3/library/unittest.mock.html)文檔以瞭解如何執行此操作?還有一些關於如何模擬方法並檢查它們是否被調用的例子。如果您已經嘗試過,請分享您的代碼,以幫助您指引正確的方向。 – idjaw

回答

0

如果您只是在尋找一種方法來模擬物體this可能是最好的方法。

要回答問題的第一部分,確實有一種方法可以獲取有關調用者函數的信息。 This可以幫助你

0

假設你有一個測試環境中,您可以在火起來蟒蛇(或IPython的)外殼和使用調試器調用的函數:

,如果這是你的函數

def multiplier(a,b): 
    print a*b 

那麼您可以在外殼做到這一點,調試代碼:

import ipdb 
ipdb.runcall(multiplier, 10, 10) 
相關問題