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
99
PyConTW 2013 Lightning Talk: Bottle vs. Startup
excusemejoe
5
180
Tapei.py Bottle Introduction @2013.03.28
excusemejoe
2
100
Other Decks in Programming
See All in Programming
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
2.3k
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.8k
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
880
GitHub Copilotの全体像と活用のヒント AI駆動開発の最初の一歩
74th
8
3.1k
未来を拓くAI技術〜エージェント開発とAI駆動開発〜
leveragestech
2
170
AWS Serverless Application Model入門_20250708
smatsuzaki
0
120
kiroでゲームを作ってみた
iriikeita
0
180
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
580
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2.5k
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
300
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
ワープロって実は計算機で
pepepper
2
1.4k
Featured
See All Featured
Docker and Python
trallard
45
3.5k
RailsConf 2023
tenderlove
30
1.2k
Building an army of robots
kneath
306
45k
Embracing the Ebb and Flow
colly
87
4.8k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Balancing Empowerment & Direction
lara
2
580
Git: the NoSQL Database
bkeepers
PRO
431
65k
The Invisible Side of Design
smashingmag
301
51k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Documentation Writing (for coders)
carmenintech
73
5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Navigating Team Friction
lara
188
15k
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 !