読者です 読者をやめる 読者になる 読者になる

破棄されたブログ

このブログは破棄されました。

Python 3.4 からは、 spec, autospec を用いて生成されたモックオブジェクトがシグネチャを考慮する

Python 3.4 からは、 spec または autospec を用いて生成されたモックオブジェクトがシグネチャを考慮するようになっています。

以下のコードは、 Python 3.3 では成功しますが、 Python 3.4 では、 assert_called_once_with()AssertionError が投げられます。

from unittest import mock

def func(a,b):
    pass

mock_func = mock.Mock(spec=func)
# a signature is different from actual func()
mock_func()

# This will raise AssertionError in Python 3.4
mock_func.assert_called_once_with()

参考資料

広告を非表示にする