IntelliJ 内で Java FX アプリケーションをテストしようとしていますが、TestFX を使用していますが、インターフェイスのボタンがクリックされたときにウィンドウが開くかどうかをテストする方法がわかりません。プライマリ ステージを取得するゲッターを作成してから、これが開くことを True にアサートしようとしましたが、これはとにかくボタン クリックで表示されるステージではありません。
アドバイス/ヘルプはありますか?
ありがとう。
IntelliJ 内で Java FX アプリケーションをテストしようとしていますが、TestFX を使用していますが、インターフェイスのボタンがクリックされたときにウィンドウが開くかどうかをテストする方法がわかりません。プライマリ ステージを取得するゲッターを作成してから、これが開くことを True にアサートしようとしましたが、これはとにかくボタン クリックで表示されるステージではありません。
アドバイス/ヘルプはありますか?
ありがとう。
生成されたウィンドウが表示されているかどうかをテストするだけの場合は、これを実行する必要があります (Hamcrest マッチャーを使用):
FxAssert.verifyThat(window("My Window"), WindowMatchers.isShowing());
そのウィンドウと実際にさらにやり取りしたりテストしたりしたい場合は、FXRobot の targetWindow(...) メソッドの 1 つを使用してみてください (そこから ApplicationTest と ApplicationRule が派生します)。サーバーのオーバーロードがありますが、最も単純なものは、ウィンドウのタイトルを指定する場所です:
これにより、そのウィンドウのシーンの FXRobot インスタンスが提供され、さらにテストを実行できるようになります。
注: この回答は TestFX 4 に関するものです。