作為一個具有 JavaScript 背景的開發人員,我花了相當多的時間使用 Jest 編寫測試。在我的專案 gimme_readme 中,由於我使用的是第 3 方 npm 模組,我必須使用 Node 和 Jest 來嘗試一些實驗性功能。我找到了很棒的 Stack Overflow 線程,教我如何在使用 ES6 語法時執行 Jest 測試。如果沒有這些聰明人的智慧,我只能說我會很掙扎!然而,有瞭如何使用 Jest 實驗功能的知識,我能夠:
我上面描述的 CI 管道的程式碼可以在這裡找到,並且設定為在向任何分支進行推送或有拉取請求時運行。這樣,任何試圖為我的存儲庫做出貢獻的人都會知道他們貢獻的程式碼是否“足夠好”,可以將其合併到我的主分支中 - 至少就自動化測試而言是這樣。
不管怎樣,我早先為我的儲存庫所做的工作已經足夠了。
本週,我決定接受挑戰,為我的朋友 Aryan Khurana 編寫的 Python 專案編寫一些測試。 Aryan 的專案是一個名為 github-echo 的命令列工具,它提供了有關 GitHub 儲存庫的見解。使用陌生的語言和我從未使用過的測試框架(PyTest)絕對超出了我的舒適區,但我真的很感激 Aryan 願意向我展示訣竅(感謝 Aryan!)。
當我開始對 Aryan 的儲存庫進行測試時,我立即對這些測試的不同外觀感到不知所措。雖然 Jest 對我來說已經很熟悉了,但 Python 的 pytest 卻感覺很陌生。儘管如此,在Aryan的指導和決心下,我開始了解它的獨特之處。
讓我們分解一下我在他們的測試案例中發現的內容:
參數化測試:首先引起我注意的是@pytest.mark.parametrize裝飾器。這與 Jest 的 test.each 類似,但語法更清楚:
上下文管理器:Python 使用 pytest.raises 上下文管理器,而不是 Jest 的 Expect().toThrow():
臨時檔案系統:測試使用 pytest 的 tmp_path 固定裝置進行檔案系統操作,比在 Jest 中設定類比檔案系統要乾淨得多:
使用 JavaScript 和 Python 測試框架的經驗拓寬了我對軟體測試的視野。雖然 Jest 感覺像是我的家鄉,但我開始欣賞 pytest 的強大功能,例如參數化測試和固定裝置。無論您是編寫 JavaScript 還是 Python 測試,最終目標都是一樣的:向使用者提供可靠、經過良好測試的程式碼。
以上是# 從 Jest 到 Pytest:JavaScript 開發人員的 Python 測試之旅的詳細內容。更多資訊請關注PHP中文網其他相關文章!