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 還有他的快樂夥伴
Search
joe
August 27, 2014
Programming
2
200
pytest 還有他的快樂夥伴
welcome to Tainan.py:
http://www.meetup.com/Tainan-py-Python-Tainan-User-Group/
joe
August 27, 2014
Tweet
Share
More Decks by joe
See All by joe
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
excusemejoe
1
180
開場與自我介紹 @ Tainan.py 2013.06.29
excusemejoe
0
63
Taipei.py Logo 的小故事 @ Taipei.py 2013.06.29
excusemejoe
0
190
Bottle Introduction @ Tainan.py 前微聚會
excusemejoe
1
98
PyConTW 2013 Lightning Talk: Bottle vs. Startup
excusemejoe
5
180
Tapei.py Bottle Introduction @2013.03.28
excusemejoe
2
98
Other Decks in Programming
See All in Programming
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
120
Porting a visionOS App to Android XR
akkeylab
0
470
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
770
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
190
AI コーディングエージェントの時代へ:JetBrains が描く開発の未来
masaruhr
1
150
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
1
13k
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
270
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
10
5.3k
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.3k
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
730
RailsGirls IZUMO スポンサーLT
16bitidol
0
190
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
100
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Code Reviewing Like a Champion
maltzj
524
40k
Fireside Chat
paigeccino
37
3.5k
Site-Speed That Sticks
csswizardry
10
690
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Designing Experiences People Love
moore
142
24k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Bash Introduction
62gerente
613
210k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Transcript
pytest 還有他的 快樂夥伴 魯蛇喬 @ Taipei.py 2014.08
⼀一般來講 「快樂夥伴」是不重要 的配⾓角們的簡稱 …
他們是值得學習的 今天相反
等等會聊到 … • JUnit • MiniTest • PyUnit (a.k.a. unittest)
• pytest
先假設你看得懂下述魔法:
早就變成潮男(⼥女)了! JUnit 年紀最⼤大的快樂夥伴:
起源 Kent Beck Erich Gamma
最新版的 JUnit
看⼀一下現在怎麼⽤用 JUnit
⼤大量使⽤用 @ annotation Output:
甚⾄至有 @Rule 可取代 before, after ..
None
–肯定句 「現在正在進⾏行 Python 聚會。」
但是 JUnit 還有好多功能 … @theory … 與測試環境/IDE的整合 …
我就是強! 潮男無誤
朝全⽅方位藝⼈人發展 MiniTest 最閃亮的快樂夥伴:
為什麼選他? 2. Ruby 1.9.x bundles minitest not Test::Unit. 1. ⼀一定程度相容
RSpec
有何特⾊色? Unit tests Specs
還有? Benchmark Mock
點到為⽌止、我最簡單 全⽅方位發展
也就是 Python STD 裡⾯面的 unittest PyUnit 最親密的快樂夥伴:
依循著 JUnit 早期的脈絡發展 • 以 3.4.1 為例,基本款功能有: • hooks: setUp/tearDown
… • test discovery 機制 • @unittest.skip /skipif / skipUnless 機制 • 進階款功能: • subtests • 內建 mock
不潮、不多功能 宅男無誤
潮不潮不重要,重點是能夠更好嗎? 少了什麼? ⼀一起想⼀一下:
打得贏 除了unittest以外的 凶殘夥伴嗎? pytest 主⾓角登場:
under certain condition sure
None
No Boilerplate 5. 4. 3. 2. 1.
Assertion: No API & More Pythonic
setUp/tearDown … ? 伊⼈人何處尋
改⽤用 fixture 系統,擁抱 dependency injection 新⼈人換舊⼈人
破除不顯著的時序耦合 1. 4. 3. 2. 我看 報紙才 參數列就知道發⽣生什麼事! #很像 JUnit
的 @Rule 對吧!
可控 fixture 的 scope
清理 fixture
可控 fixture 的 scope
以 fixture 注⼊入另⼀一個 fixture
依照參數⽣生成各種 fixture 且⾃自動注⼊入測試
fixture x fixture
加強版 setUp …
mark 系統
plugins
請參閱官網 tl;r # 或之前在 Tainan.py 分享的 slides
⾃自從有了 pytest 後 ⽤用 Python 寫 tests 可以更快樂 其實
主⾓角打不打得過快樂夥伴不重要 … 結論 # 是否從此對 Testing Framework 更有想法?
True assert QA.time == 0
⼯工商服務:台南.py # 歡迎路過 Tainan.py !
九⽉月⼆二⼗十七⽇日 (六) 下次聚會 # 歡迎路過 Tainan.py !
感謝聆聽 歡迎投稿 # 歡迎路過 Tainan.py !