簡體   English   中英

調用方法后,屬性為“ Called”的Python模擬方法仍然為False

[英]Python mock method attributed “called” is still False after method is called

我正在測試使用Python模擬庫調用一種方法。 外部方法是這樣的:

def get_abc():
    get_a()
    get_b()
    get_c(False)

測試用例是這樣的:

@mock.patch('myclass.get_a')
@mock.patch('myclass.get_b')
@mock.patch('myclass.get_c')
def test_inner_methods(self, mock_meth_1, mock_meth_2, mock_meth_3):
    o = Outerclass(config_file=cfg)
    o._get_abc()
    self.assertTrue(mock_meth_1.called)
    mock_meth_1.assert_called_with(False)

當我進行調試時,成功調用了get_c(),但是named_mock_meth_1的被調用屬性從未改變。 我需要做更多的工作來正確模擬該方法嗎?

您對myclass.get_c兩次修補,所以我不知道它的行為,但這可能不是您的本意。 將其中之一切換到myclass.get_a ,您可能會好起來的。

您可能還會發現mock_meth1.assert_called()self.assertTrue(mock_meth_1.called)容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM