空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

mockテストのお勉強

mock.return_value

  • 返り値を指定できる

mock.called

mock.call_count

  • 何回呼ばれたか確認できる

mock.call_args

mock.call_args_list

  • 引数のリストがわかる

mock.side_effect

  • いろんなものが指定できる

例えば(イテレート)

side_effect = chain([1,2,3,4])

mock.method_calls

mock.mock_calls

  • mock_calls は、メソッド,特殊メソッド,戻り値のモックまで、モックオブジェクトに対するすべての呼び出しを記録する

mock.assert_called

mock.assert_called_once

mock.assert_called_with

mock.assert_called_once_with

mock.assert_any_call

assert_has_calls

参考:

26.5. unittest.mock — モックオブジェクトライブラリ — Python 3.6.1 ドキュメント

パッチデコレータ

@patch

参考:

Pythonのテストコードでmockを使ってみた | Developers.IO

mock(Pyhtonモックライブラリ)についてのメモ - Qiita

Pythonのデバッグとテストモジュール - Qiita

Pythonで学ぶ 基礎からのプログラミング入門 (34) Pythonのテスト手法 | マイナビニュース

ユニットテスト

# @raises 例外のテスト
@raises(Error)
def test_invalid_arg():
    actual = add(None, 1)

参考:

Python nose でユニットテストを書いてみた / 桃缶食べたい。