Skip to Content
Python 技術手冊 第三版
book

Python 技術手冊 第三版

by lex Martelli, Anna Martelli Ravenscroft, Steve Holden
January 2018
Intermediate to advanced content levelIntermediate to advanced
856 pages
17h 17m
Chinese
GoTop Information, Inc.
Content preview from Python 技術手冊 第三版
除錯
|
523
測試的原始碼中內嵌資料。測試一個會讀取或寫入檔案物件的函式時,使
用類別
io.TextIO
的一個實體用於文字,也就是 Unicode 檔案(
io.BytesIO
用於位元組,也就是二進位檔案,如前面「記憶體內部的「檔案」:
io.StringIO io.BytesIO」中所涵蓋的),以取得資料在記憶體中的一個
「檔案」:會比寫入磁碟還要快速,而且無須清理(例如在測試之後卸除
磁碟)。
在少數情況中,可能要提供無法合理地內嵌到測試原始碼中的大量資料才
能觸動一個模組的必要功能性。在這種情況中,你的單元測試必須仰賴輔
助性的外部資料檔來存放資料,以提供給它所測試的模組或與輸出進行比
較。即使是在這種情況中,使用前面提及的
io
類別通常都會比較好,而
非讓被測模組進行實際的磁碟 I/O。更重要的是,我們強烈建議你為會與
外部實體(例如資料庫、GUI,或透過網路連接的其他程式)互動的單元
測試模組使用 stubs。使用 stubs 會比使用真正的外部實體更容易控制測試
的所有面向。此外,為了重複執行,你能執行單元測試的速度就顯得很重
要,而在 stubs 中進行模擬的作業會比真實的作業還要快。
為了測試,請提供一個種子來讓隨機行為可重現
如果你的程式碼用到偽隨機數字(如前面「random
組」中所涵蓋的),你可以確保它的「隨機」行為是
可重
reproducible
的,來讓測試工作更容易進行:具體而
言,就是確保你的測試可以很容易地以一個已知的引數呼
random.seed
,如此就確保了偽隨機數字變得完全可預 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

測試驅動開發|使用 Python

測試驅動開發|使用 Python

Harry J.W. Percival
Linux 内核观测技术BPF

Linux 内核观测技术BPF

David Calavera, Lorenzo Fontana

Publisher Resources

ISBN: 9789864766819