問題タブ [assertj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
244 参照

java - Swing コンポーネントが埋め込まれた複数の RCP プラグインを使用したアプリケーションのテスト自動化アプローチ

20 以上の Eclipse RCP プラグインで構成される巨大なアプリケーションの機能テストの自動化を行いたいと考えています。最も困難な部分は、ほとんどすべての RCP プラグインが一部のレガシー Swing コンポーネントを組み込んでいることです。今では、SWT+Swing アプリケーションをすぐにテストできるオープンソースのテスト自動化フレームワークが存在しないことはほぼ確実です。純粋な SWT アプリケーションまたは純粋な Swing アプリケーションのテストをサポートするフレームワークはありますが、SWT と Swing が混在する AUT のテストをサポートするフレームワークはありません。サンプル SWT+Swing アプリケーションで何かを実験しました。このサンプル アプリケーションは RCP プラグインではなく、Swing コントロールが組み込まれたスタンドアロンの SWT アプリケーションです。2 つの異なるライブラリを使用して、SWT とアプリケーションの Swing 部分をテストしました。

SWT には、 https ://github.com/mmarquee/ui-automation を使用しました。

Swing の場合、 http://joel-costigliola.github.io/assertj/assertj-swing.htmlを使用しました。

それはうまく動作します。SWT と Swing コンポーネントを自動化する単一の Junit テストがあります。したがって、RCP プラグインをテストするためにこのアプローチを採用することに興奮しています。

私の質問に来ます: SWT 部分については、UI オートメーション バインディングが RCP プラグインの SWT 部分でうまく動作するので、私は問題ありません。問題は、AssertJ Swing の使用に関するものです。AssertJ Swing は、非常に異なるアプローチを使用して AUT にアタッチします。実際、これは AUT の別のインスタンスにアタッチするのではなく、実際の Swing コンポーネントを Fixtures と呼ばれるものにラップします。したがって、AssertJ Swing を使用して Swing コンポーネントをテストするコードは、AUT と同じ JVM 内で実行する必要があります。1 つのアイデアは、新しい RCP プラグインを実装し、この RCP プラグイン内に Swing テストを含めることです。RCP アプリケーションの書き方を習得するには、少し時間がかかるかもしれません。そのため、このソリューションに潜在的な問題があるかどうかを尋ねたいと思います。私がすでに目にしている問題の 1 つは、AssertJ Swing が ApplicationLauncher.application を呼び出さずにフレームとダイアログを検索できるようにすることです。

この質問は AssertJ Swing に関するもののように聞こえますが、AssertJ Swing に関する回答と解決策が得られれば問題ありませんが、Swing を組み込んだ複数の RCP プラグインを一緒にテストする際の問題を解決するためのアイデアについてもっと知りたいと思います。コンポーネント。私はまったく異なるアプローチを受け入れますが、オープン ソース フレームワークに固執したいと考えています。