我想模擬幾個不重要的功能爲測試主題(其他功能) - time.sleep()等。如何強制MagicMock複製功能簽名?
我可以將它們替換爲簡單的模擬,這將工作。但我希望它報告錯誤,如果他們被調用的參數數量不正確,沒有命名參數等。
有沒有辦法說模仿'提出異常,如果你的參數列表不同於給定函數'?
的功能例子我想嘲笑:
def mockme(arg1, arg2):
pass
我想要什麼:
>>> m = mock.CallableMock(signature=mockme)
>>> m(1,2)
<MagicMock name='mockme()' id='140435553563920'>
>>> m(1,2,3)
TypeError: <MagicMock name='mockme()' id='140435553563920'> takes exactly 2 arguments (3 given)
不知道如何做呢?
那豈不是更好地模仿你的'call_args'比較你希望它是參數列表叫什麼名字? – lucasnadalutti
是的,這是可能的,但非常煩人,如果有很多電話。 –