1. ホーム
  2. unit-testing

[解決済み] クロームの拡張機能をテストするには?

2022-04-22 13:26:45

質問

良い方法はないでしょうか?私は、コンテンツスクリプトとしてウェブサイトと対話し、localstorageを使用してデータを保存する拡張機能を書いています。この動作をテストするために使用できるツール、フレームワークなどはありますか?javascriptをテストするための一般的なツールがあることは承知していますが、それらは拡張機能をテストするのに十分な力があるのでしょうか?ユニットテストが最も重要ですが、私は他のタイプのテスト(統合テストなど)にも興味があります。

どのように解決するのですか?

はい、既存のフレームワークがかなり有効です。

最近、私はすべてのテストを、アプリケーションに埋め込まれた、物理的にタイプしない限り到達できない "テスト" ページに置きました。

例えば、私はすべてのテストをあるページにおいて chrome-extension://asdasdasdasdad/unittests.html

テストは localStorage などがあります。 コンテンツスクリプトへのアクセスについては、理論的にはテストページに IFRAME を埋め込んでテストすることができますが、これらはより統合レベルのテストであり、ユニットテストでは実際のページから抽象化して、それに依存しないようにすることが必要です。

ページを直接テストしたい場合は、新しいタブを開くように拡張機能をオーケストレーションすることができます (chrome.tab.create({"url" : "someurl"})。 新しいタブごとにコンテンツスクリプトが実行され、テストフレームワークを使用して、コードが実行すべきことを行ったかどうかをチェックすることができます。

フレームワークについては JsUnit または、より新しい ジャスミン は正常に動作するはずです。