Python、モック:例外を発生させる [closed] 質問する

Python、モック:例外を発生させる [closed] 質問する

テスト内の関数から例外を発生させる際に問題が発生しています:

### Implemetation
def MethodToTest():
    myVar = StdObject()
    try:
        myVar.raiseError() # <--- here
        return True
    except Exception as e:
        # ... code to test
        return False

### Test file
@patch('stdLib.StdObject', autospec=True)
def test_MethodeToTest(self, mockedObjectConstructor):
    mockedObj = mockedObjectConstructor.return_value
    mockedObj.raiseError.side_effect = Exception('Test') # <--- do not work
    ret = MethodToTest()
    assert ret is False

raiseError()エラーを発生させる機能が欲しいです。

SO でいくつかの例を見つけましたが、私のニーズに合うものはありませんでした。

ベストアンサー1

私が変更され

@patch('stdLib.StdObject', autospec=True)

@patch('stdLib.StdObject', **{'return_value.raiseError.side_effect': Exception()})

そしてその# <--- do not work行を削除しました。

今は動作しています。

これ良い例です。

編集:

mockedObj.raiseError.side_effect = Mock(side_effect=Exception('Test'))

も動作します。

おすすめ記事