moxの記録/再生/検証パターンの 代わりにunittest.mockのアクション/アサート パターンの使用を開始しようとしています。
# foo.py
def op_1(param):
pass
def op_2(param):
pass
def do_stuff(param_1, param_2):
global config
global log
try:
op_1(param_1)
if config.getboolean('section','option'):
op_2(param_2)
except:
log.error("an error occured")
そして、これが私の unittest ファイルの例です。
# test_foo.py
class TestFoo(unittest.TestCase):
def test_do_stuff(self):
param_1 = None
param_2 = None
foo.config = MagicMock()
foo.config.getboolean('section','option', return_value = True)
foo.op_1 = MagicMock()
foo.op_2 = MagicMock()
do_stuff(param_1, param_2)
foo.op_1.assert_called_once_with(param_1)
foo.op_2.assert_called_once_with(param_2)
foo.config.getboolean.assert_called_once_with('section','option')
このテストは、以下の項目を検証するためのものですか?/私はモックを正しく使用していますか?
- エラーなしで返された do_stuff 呼び出し
- op_1 は param_1 で呼び出されました
- op_2 は param_2 で呼び出されました
- config パーサー オブジェクトが使用されていましたが、特定の呼び出しは問題ではありません