Explainer.js への Jest の追加

Susan Sarandon
リリース: 2024-11-10 09:02:02
オリジナル
239 人が閲覧しました

今週は、cli ツールにテストを追加することになっていました。これまでのところ、最もイライラすることです。

ジェストを選んだ理由

私は TDD (テスト駆動開発) の大支持者です。ほぼすべてのピースコードをテストする必要があります。協力期間中、私は PR のテストを書くことに時間の半分以上を費やしました。この経験がテストの必要性を本当に理解させてくれたと思います。 JS と Ruby のテスト フレームワークが非常に似ていることに驚きました。私は、協力プレイ中に使用した RSpec によく似た Jest を使用しました。 http リクエストを模擬するために、VCR と呼ばれるものに似た Nock を使用しました。

私が直面した問題(多くの問題)

私が直面した主な問題は、CommonJS の代わりに ESM を使用したことでした。そのせいで私の人生はさらに困難になりました。最初の問題は jest.mock が機能しないことでした。少し調べた結果、ESM ではモックの方法が異なることがわかりました。残念ながら、ドキュメントに従っても動作させることができませんでした。したがって、jest.spyOn を実行する必要がありました。私が直面した2番目の問題は、execaがchild_processでindex.test.jsを実行するため、実行してもカバレッジレポートには影響しないということでした。そのため、jest.spyOn を使用してテストを書き直す必要がありました。また、jest に渡すフラグを受け取らないように、index.js をリファクタリングする必要がありました。私が直面した他の小さな問題は、 jest -c jest.config.mjs の代わりに、node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c jest.config.mjs を使用することでした。 ESMを使用して。また、単純な jest.spyOn では十分にテストできなかったため、mock-fs を使用してファイル システムを複製し、FilepathResolver.test.js をテストする必要がありました。 ESM を使用するだけで、これほど多くの障害が発生することに驚きましたが、ESM は JS がいかに混乱しているかを反映しています。

多くの試行錯誤の後、かなり良好なカバレッジが得られました。

Adding Jest To Explainer.js

以上がExplainer.js への Jest の追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート