#author("2023-02-19T03:16:06+00:00","default:hotate","hotate")
#author("2023-02-19T03:17:06+00:00","default:hotate","hotate")
#contents
&tag(Python,ユニットテスト);

* フレームワーク [#h8b96cdd]
- [[unittest.mock --- 入門 — Python 3.8.5 ドキュメント>https://docs.python.org/ja/3/library/unittest.mock-examples.html]]
 一般的な Mock の使い方の中には次のものがあります:
 - メソッドにパッチを当てる
 - オブジェクトに対するメソッド呼び出しを記録する
- [[Understanding the Python Mock Object Library – Real Python>https://realpython.com/python-mock-library/]]
 One reason to use Python mock objects is to control your code’s behavior during testing.

* [[書籍]] [#s3a0f1f0]
- [[テスト駆動Python 第2版 | Brian Okken, 株式会社クイープ - Amazon>https://amzn.to/3KfikTD]] (2022/8/30)
 Pythonを使った開発時に、テストの検出・実行・結果報告を自動で行うpytestの、導入から活用方法の詳細を、実務に沿うスタイルでを解説した『テスト駆動Python』(2018年)の第2版です。

* 情報 [#f096a8d7]
- [[Pythonのテストコードでmockを使ってみた | Developers.IO>https://dev.classmethod.jp/testing/python_unittest_mock/]]
 HTTP接続できない環境でもテストできるようにしたい
- [[【python】mockの使い方まとめ | kokiblog>https://kokiblog.com/2020/01/26/python_mock/]]
 テストコードを書く機会があり、結構苦労したのでまとめてみたいと思います。
- [[そんなpatchで大丈夫か? (mockについてのメモ〜後編〜) - Qiita>https://qiita.com/FGtatsuro/items/eb2b05ff56f3599a1248]]
 ポイントはテスト対象モジュール内での外部ライブラリのimportの仕方にある。
 from requests import Sessionとした場合、Sessionクラスはimportを実行したモジュール空間下に置かれる。
- [[Pythonのunittestのmock.patchでハマった話(結局何をpatchすればいいのか) - [Dd]enzow(ill)? with DB and Python>http://www.denzow.me/entry/2017/12/17/225453]]
 しかし、'置き換えたいモジュール名'で指定すべき内容が少しわかりづらいと思います。
- [[Pytnonで、unittest.mock.patch.objectのautospecとside_effectを使って、テスト対象の属性(self.attr)を更新する - メモ的な思考的な>https://thinkami.hatenablog.com/entry/2017/03/17/062138]]
 - 属性self.can_printは、メソッド内で初期化しているため、外部からデータを与えられない
 - validate()メソッドは、内部でデータベースなどで複雑な処理をしているため、is_ok=Trueとなるデータを用意できない
 のため、validate()メソッドをモックに差し替えたいと考えています。
- [[Pythonで、モックに差し替えたメソッドが呼ばれた回数や呼ばれた時の引数を検証する - メモ的な思考的な>https://thinkami.hatenablog.com/entry/2017/03/18/063454#%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%8C%E5%91%BC%E3%81%B0%E3%82%8C%E3%81%9F%E6%99%82%E3%81%AE%E5%BC%95%E6%95%B0%E3%82%92%E6%A4%9C%E8%A8%BC]]
 ## set_complex()が1回でも呼ばれたか
 mock_lib.set_complex.assert_called()
- [[[Python] unittest.mockを試してみる | DevelopersIO>https://dev.classmethod.jp/articles/python_unittest_mock-trial/]] (2019/08/18)
 python標準ライブラリのunittest.mockを試してみました。公式ドキュメントのチュートリアルを参考に、業務で必要になったケースを例として試しています。
- [[[python] まだmockで消耗してるの?mockを理解するための3つのポイント - くろのて>https://note.crohaco.net/2015/python-mock/]] (2023/01/20)
 mockは特定のオブジェクトの代理をしてユニットテストを円滑に進めるためのモジュールです。


* 関連 [#j6ce50dd]
#related

- [[Python]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS