Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
pytestの第一歩 〜「テスト駆動Python」の紹介〜
Search
mizzsugar
June 09, 2021
Programming
3
300
pytestの第一歩 〜「テスト駆動Python」の紹介〜
mizzsugar
June 09, 2021
Tweet
Share
More Decks by mizzsugar
See All by mizzsugar
SQLModel入門〜クエリと型〜
mizzsugar
0
390
フルリモート向いてないと思っていた私が、なんだかんだ健やかに 1年半フルリモート出来ている話
mizzsugar
0
110
Djangoでのプロジェクトだって型ヒントを運用出来る!
mizzsugar
4
8.1k
「動くものは作れる」の一歩先へ 〜「自走プログラマー」の紹介〜
mizzsugar
0
510
データ分析ツール開発でpoetryを使う選択肢
mizzsugar
1
1.1k
unittest.mockを使ってテストを書こう
mizzsugar
5
6.1k
変数に変数を代入したら?
mizzsugar
0
2.5k
Djangoのパスワードハッシュアルゴリズムで_PyramidのWebアプリケーション作った.pdf
mizzsugar
0
830
unittest.mockを使ってテストを書こう ~モックオブジェクトを使ってより単体テストの目的に沿ったテストに~
mizzsugar
4
1.9k
Other Decks in Programming
See All in Programming
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
1.4k
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
250
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
140
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
8
1.9k
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
カンファレンス動画鑑賞会のススメ / Osaka.swift #1
hironytic
0
170
Package Traits
ikesyo
1
210
chibiccをCILに移植した結果 (NGK2025S版)
kekyo
PRO
0
130
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
1.2k
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
140
Featured
See All Featured
Scaling GitHub
holman
459
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Building an army of robots
kneath
302
45k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
860
The Pragmatic Product Professional
lauravandoore
32
6.4k
The Cult of Friendly URLs
andyhume
78
6.1k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Building Adaptive Systems
keathley
38
2.4k
The Invisible Side of Design
smashingmag
299
50k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Transcript
pytestの第一歩 2021-06-09 @stapy mizzsugar0425 〜「テスト駆動Python」の紹介〜 1
Agenda - 自己紹介 - 本の概要 - 対象読者 - おすすめポイント -
関連本 2
お前、誰よ? - Twitterはこのアイコン (@mizzsugar0425)→ - Python歴3年 - Spready株式会社 (we are
hiring!!) - 好き: コーヒー、自転車、ビール - Stapy5代目LT女王 - 静岡住みでフルリモートで働いています - Django Congressで登壇します! Djangoでの型ヒントについて話ます。 https://djangocongress.jp/ 3
本の概要 - 「Python Testing with pytest」の翻訳版 https://amzn.to/3uY612B - pytestでのテストコードの書き方を紹介 -
基本的な文法だけでなく、 プラグインや他ツールと合わせた使い方も - サンプルコードはPython3.6、pytest 3.2。Python3.9の今でも使える内容 - 本のURL↓ https://amzn.to/3ggb6y0 4
対象読者 - pytestでテストを書いたことがないけれどもやってみたい方 - テストコード自体書いたことがない方でも読める内容です ※Pythonの基本的な文法は知っている必要があります 5
おすすめポイント 6
pytestの使い方がまとまっている - 詳細な解説とコードつきで基本から応用までまとまっています - 1冊辞書代わりに手元にあると安心 7
よく言われるpytestのオススメ機能 - pytest.mark.parametrize - フィクスチャ 🤔 とよく言われるけど、 どういう仕組みなのかとか 何が嬉しいのか良くわからない… 8
具体的なコードも載っている - テスト駆動で実装が進みます - コードは簡単なものなので、pytestの文法を理解しやすいです - 基本的な文法だけでテストコードを書く所から始まり、 フィクスチャやプラグインを用いてテストコードを改善する流れが 分かります -
フィクスチャについては、2章使って扱うほど手厚いです(全7章+付録) 9
練習問題がついている - 各章に練習問題がついています - 各章についているサンプルコードにちなんだ問題 - ☓ 読んで終わり ◦ 読んで書いて身につける
10
私の学び方 pytest学びたて - 1章読む→練習問題を解く→分からなかった箇所をもう1回読む - pytestを使って他のサイトに載っている練習問題を解いてみる どちらもTDDのための題材だけど、テストコード練習にも良いかと! http://devtesting.jp/tddbc/ https://absj31.hatenadiary.com/entry/20120721/1342880403 -
↑の前に、付録Gの写経するのも良いかも 現場で実践中 - テストコードが上手く書けない時に読む→本の内容を試してみる 11
付録G - 日本語訳版のオリジナルコンテンツ - 翻訳者のやっとむさんが著者 - テスト駆動開発でプログラムを実装しています - 何を考えて実装を進めているかまで書かれています -
まるでやっとむさんとペアプロしているよう 12
関連本 1. テスト駆動開発 2. レガシーコード改善ガイド 13
1. テスト駆動開発 - 「テスト駆動Python」はどちらかというと pytestの文法に重きを置いていたので TDDの考え方や進め方をより詳しく学ぶならこの本 - 2章目に使われているコードはPython (ただし、Pythonの標準モジュールであるunittestモジュールを使用) -
本のURL↓ https://amzn.to/3v4iAtc 14
2. レガシーコード改善ガイド - まだ読んでないけど、今回の発表でpytestおよびテストコードを 学び直した際に読みたくなりました🔥 - テストコードが書かれておらず、メンテナンスしにくい複雑なコードを 「レガシーコード」と定義 - レガシーコードを分析し、テストコードを追加する方法が書かれているらしいです
- 本のURL↓ https://amzn.to/3znqX6O 15