PPP3: mock・テストケースの書き方
mockも紹介だけかな?あとで手を動かす感じになる?(コード例はある)
- モックオブジェクトを作成すると、どんなメソッドでも呼び出せる
- 呼び出したときの戻り値を指定したり、例外を発生させることができる
- メソッドが呼び出されたか、どんな引数で呼び出されたか確認できる
- テスト対象に含まれるオブジェクトをモックオブジェクトに置き換えることができる
どんなふうに使えるのか、モックを使うとどれくらい依存を減らせるのかは
ちょっと興味ある
そういうの出てくるかな
効果的なテストケースの書き方
- テストを分離する・データを共有しない
そういえばPCADの解答にテストつけてて、共有すると行数が減らせそうな
データを共有にしてたけどちょっとやりづらかったな
これは正しいのかと思いつつやってた
データが多く必要な時にうまく書く方法があるのかな
それとも行数なんか気にするなってことか
- テスト対象をモジュール直下でimportしない
こういうやつのことか
def _getTarget(self):
from bankaccount import bankaccount
return bankaccount
def _makeOne(self, *args, **kwargs):
return self._getTarget()(*args, **kwargs)
def test_construct(self):
target = self._makeOne()
self.assertEqual(target._balance, 0)
そこまでするの、と思ったけどモジュールが状態を持つような
場合はこんな感じにしとかないとダメか
- [単体テストガイドライン — The Pylons Project Documentation (翻訳) http://docs.pylonsproject.jp/en/latest/community/testing.html]も参考に
読んでおこう