2017-10-30 18 views
0

メソッドがPythonモックライブラリで呼び出されることをテストしています。テストケースは、このようなものですメソッドが呼び出された後、呼び出されたPythonモックメソッドは "False"である

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

:外の方法はこれです)私は、デバッグ、get_c(に従った場合

@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) 

正常に呼び出さが、mock_meth_1のと呼ばれる属性が変更されることはありません。メソッドを正しく模倣するためにはもっと多くのことを行う必要がありますか?

+0

編集:固定電話呼び出し –

答えて

1

myclass.get_cを2回修正したので、どのように動作するのか分かりませんが、意図したとおりではありません。そのうちの1つをmyclass.get_aに切り替えると、おそらく問題ありません。

さらにmock_meth1.assert_called()self.assertTrue(mock_meth_1.called)よりも簡単かもしれません。

関連する問題