首頁 > web前端 > js教程 > 將 Jest 加入Explainer.js

將 Jest 加入Explainer.js

Susan Sarandon
發布: 2024-11-10 09:02:02
原創
245 人瀏覽過

本週我們應該將測試添加到我們的 cli 工具。迄今為止最令人沮喪的事情。

為什麼我選擇傑斯特

我是 TDD(測試驅動開發)的堅定支持者。幾乎每一段程式碼都應該被測試。在我的合作期間,我一半以上的時間都花在為我的 PR 編寫測試上。我相信這段經歷確實幫助我了解測驗的必要性。我很驚訝地發現 JS 和 Ruby 中的測試框架是如此相似。我使用的 Jest 與我在合作期間使用的 RSpec 非常相似。為了模擬 http 請求,我使用了類似 VCR 的 Nock。

我遇到的問題(很多)

我面臨的主要問題是我使用了 ESM 而不是 CommonJS。這讓我的生活變得更加困難。第一個問題是 jest.mock 不起作用。經過一些研究,我意識到 ESM 中的模擬方式是不同的。不幸的是,即使遵循文件後我也無法讓它工作。所以,我不得不做 jest.spyOn。我面臨的第二個問題是,由於 execa 在 child_process 中運行 index.test.js,儘管運行它不會影響覆蓋率報告。所以我不得不使用 jest.spyOn 來重寫測試。我還必須重構index.js,以便它不會採用我傳遞給笑話的標誌。我遇到的其他較小問題是,使用node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c jest.config.mjs 而不是jest -c jest.config.mjs因為我是使用ESM。我還必須使用mock-fs來複製檔案系統來測試FilepathResolver.test.js,因為簡單的jest.spyOn沒有對其進行足夠徹底的測試。我很驚訝光是使用 ESM 就造成瞭如此多的障礙,這恰恰反映了 JS 是多麼混亂。

經過多次嘗試錯誤,我得到了相當好的覆蓋範圍。

Adding Jest To Explainer.js

以上是將 Jest 加入Explainer.js的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板