見出し画像

pytest_基本的な作業手順 #330日目

ついにMacBook PROを支給してもらったのですが、Windowsとの違いが大きすぎてnote更新よりもMacに慣れる作業に時間が取られまくっています笑。基本設定と環境構築を進めているのですが、こだわり出すと無限にやることがありそうです笑。ただ一つ言えることは、初めてのMac、めっちゃ楽しいです!!

さて、操作に慣れるためにもnoteを更新していきます。会社でpytestを実装していく際の流れを教わったことのメモです。
基本的なpytestのコードは以前まとめさせていただきました。


pytestを実装する流れ

今回は大きな流れを確認していきます。

【設計〜事前準備】
①APIの仕様把握、概要把握
②テストケースの洗い出し
③テスト用データの用意

①はテストするAPIにどういうreturnがあるのかということを把握します。ここでのreturnとは、どういうエラーを想定しているか、等の非正常系の結果も当然把握します。

②は、①で把握したコードの通り道を全て通るように用意するのが基本です。ただし場合によっては想定していないエラー(定義していないエラー)は省略する場合もあります。

③テスト用データの用意が最も時間のかかるポイントです。想定されるテストケースの正解データを準備します。


次に、コードの大まかな構成です。

【コードの構成】
①テスト用のデータベースやキャッシュを生成する
②APIを叩く
③事前準備していた結果と呼び出し結果が一致するか確認
④テストが終了したらテスト用の①を空にする

上記の枠組みでコードを書いていくことになります。


pytestを効率化するために

デコレータやpytest実行時のコマンドオプションで効率化を図ることができます。

・pytestの組み込みデコレータ

pytest.mark.parametrize
1つのテストメソッドで複数パターンのテストを行える。
複数のパラメータでテストを実施する際、いずれかのパラメータでエラーが出てもテストを継続してくれる。

pytest.mark.django_db
そのテストでDjangoのテスト用DBが使えるようになる。

・pytestのオプション

pytest -v --lf
前回NG1だったテストだけ実施

pytest -s
pytestコード内にprintを仕込んで標準出力できる


ここまでお読みいただきありがとうございました!!


参考


この記事が気に入ったらサポートをしてみませんか?