Flying Cat Penguin

ゆるゆる仕事、ソフトウェアテスティング関連のことについて綴ります。

「テスト駆動Python」(2018年)

テスト駆動Python

テスト駆動Python

2021年の読書 :19冊目/目標30冊

出た当初に買っていたのですが、積読していたのでGWの消化目標の書籍の一つとして読んでみました。
内容としては、テスト駆動…というよりも、pytestの使い方というのがしっくりくる内容の本でした。
日本語の監修者である安井さんの記事の方がどちらかというと題名に近かった気がします。

感想ですが…
私は、最近はテスト自動化に関わることも多くなっており、自動テストのやり方について改めて勉強しています。
webブラウザでE2Eテストをどう構築するかという話がメインなのですが、こういったコードそのものを対象にしたテストはやはり基本だと思っています。
今回はpytestがメインだったのですが、基本的なテスト設計を考えたうえで本書を読むと、「テストを実装するためにやっぱりコードは書けないとね」と思うばかりです。
転職して一年目は、テスト設計だけでなく「テストをどうコーディング」していくかということももう少し勉強してみようかなと改めて思いました。

なので、例えば今回の書籍の内容を受けて、

マイヤーズ三角形問題の計算関数のモジュールをpythonで作成して、
テスト設計した結果をpytestで書いてみる

…なんていうこともちょっと記事にしてみると面白そうだなと思っているので近いうちにやってみようと思います。

APPENDIX

本書での用語整理

  • テスト関数:テスト対象をテストする関数
  • フィクスチャ:テスト関数の実行に先立って(またはその前後に)、pytestによって実行される関数。(この言葉は色々な言語なども含めて意味が様々っぽいので注意)

その他のメモ

  • フィクスチャの共通化には、conftest.pyを利用する。ローカルプラグインというもので、import conftestという風に読み込まなくても利用できる。ここに分離だデータとしてフィクスチャを定義するとテストデータをまとめることができる。
  • 筆者はこんな感じでテスト関数の概要をコメントとして記載している。
# GIVEN 前提
# WHEN こうしたら
# THEN  こうなる

以上