Pythonの小さいスクリプトを書いたんですが、せっかくなんでテストも書いてみようと思ってあがいたメモ。やりたかったのは、スクリプトの中で行ってるIO(ファイルとIPC)をテスト中は上書きして、テストデータを返す、みたいなこと。
初めはmock
というのでやってたんですが、subprocess.Popen()
がさらにメソッドを呼び出す形で使うのでどうやってやったらいいのか分からなくて、mox
を使ってとりあえずできたのでそれを記録。
Example.run()
は、ファイルを読み込んだ内容とコマンド実行結果をつなげて返すだけ。
もっとスマートなやり方やオススメもモジュールがあればぜひ教えてくださいませ〜
cf. python - Mocking open(file_name) in unit tests - Stack Overflow