問題タブ [testfx]

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 に答える
463 参照

java - TestFX と Gradle - NoNodeFoundException

testFx はすでに Eclipse で動作しており、GUI テストは正常に実行されます。しかし、それはgradleでは機能しません。ボタンに NoNodeFoundException が表示されます。そのコード行を取り除くと、TextField を指す次の行に対してまったく同じ例外が表示されます。

開発者以外に、testfx を gradle と組み合わせて使用​​しようとした人は誰もいなかったようです。

それを解決する方法はありますか?

gradle.build

//プライバシー保護 mainClassName = "*********.todomanager.model.ReadAndWrite"

それが役立つかどうかはわかりませんが、これが私のプロジェクト構造です。 ここに画像の説明を入力

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

javafx - コンボボックスのテキストを確認する

javafx クライアントの gui テストにhttps://github.com/TestFX/TestFXを使用しています。testfx クエリを使用すると、comboBox を取得できますが、検証用のテキストを取得できません。コンボ ボックスは、コンバーターと特定のリソース バンドルによってテキストが解決される列挙型の値を表示します。コンボ ボックスのシーン グラフは次のようになります。

comboBox.getValue()テキストではなく列挙値のみを提供します(列挙値を確認できましたが、これはGUIテストであるため、表示されたテキストを確認する必要があります)。試してみると、comboBox.getChildrenUnmodifiable().toString()印刷されていることがわかりました

最後の文字列「StringOfInterest」はまさに私が必要としているものですが、それがどこから来たのかは不明です。javafxのソースコードを調べるとNode#toStringが使われているようです。ただし、最後の部分 (「StringOfInterest」) がどこから来たのかは不明です。ComboBox のすべての子のテキストを取得しようとしましたが、問題の文字列はその一部ではありません。

文字列を抽出するにはどうすればよいですか?

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

java - testfx が標準出力に出力されない

ユーザーがログインボタンをクリックすると、メッセージが標準出力に出力される単純なアプリケーションがあります。testfx の使用を開始しようとしていますが、ボタンのクリックをシミュレートすると、メッセージが出力されません。これは予想される動作ですか、それとも何か不足していますか?

DialogioController.java:

DialogioTest.java:

Dialogio.java:

Dialogio.fxml:

0 投票する
2 に答える
3099 参照

java - Spring Bootテストで「ヘッドレス」プロパティを設定するには?

JavaFX で Spring Boot を使用してテストしています (これを説明するいくつかの優れた YouTube ビデオに基づいています)。

TestFXで動作させるには、次のようなコンテキストを作成する必要があります。

私は今、この JavaFX アプリケーションをテストしたいと思っています。

これにより、Spring コンテキストが開始され、期待どおりに「通常の」Bean がモック Bean に置き換えられます。

ただし、java.awt.HeadlessException通常の起動時に行われるように、この「ヘッドレス」プロパティが false に設定されていないため、 が表示されます。テスト中にこのプロパティを設定するにはどうすればよいですか?

編集:

よく見ると、Spring テスト フレームワークが開始するコンテキストと、initメソッドで手動で作成するコンテキストの 2 つのコンテキストが開始されているように見えるため、テスト対象のアプリケーションはモック Bean を使用していません。メソッドでテスト コンテキストの参照を取得する方法を誰かが知っていれば、init()とてもうれしいです。

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

javafx - JavaFX、Platform.runlater() のコールバックはありますか?

私のアプリケーションは、メソッドRunnableを呼び出して FX スレッドに複数を追加します。その後、FX プラットフォーム キューにPlatform.runlater追加がない場合にのみ、いくつかの計算を実行したいと考えています。Runnableしかし、正しい方法がわかりません。適切な時間を取得するためのイベントまたはコールバックメカニズムはありますか?
現在、アプリケーション スレッドを強制的に MILLISECONDS ランダムにスリープさせています。

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

java - TestFX は Java 7 と互換性がありますか?

次のスニペットを実行します (Eclipse で設定された JDK 7 を使用):

次の例外が発生します。

java.lang.UnsupportedClassVersionError: org/testfx/framework/junit/ApplicationTest : サポートされていない major.minor バージョン 52.0 で java.lang.ClassLoader.defineClass1(ネイティブ メソッド) で java.lang.ClassLoader.defineClass(不明なソース) で java.security .SecureClassLoader.defineClass(不明なソース) で java.net.URLClassLoader.defineClass(不明なソース) で java.net.URLClassLoader.access$100(不明なソース) で java.net.URLClassLoader$1.run(不明なソース) で java.net .URLClassLoader$1.run(未知のソース) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(未知のソース) at java.lang.ClassLoader.loadClass(未知のソース) at sun.misc. Launcher$AppClassLoader.loadClass(不明なソース) で java.lang.ClassLoader.loadClass(不明なソース) で java.lang.ClassLoader.defineClass1(Native Method) の java.lang.ClassLoader.defineClass(不明なソース) の java.security.SecureClassLoader.defineClass(不明なソース) で java.net.URLClassLoader.defineClass(不明なソース) で java.net.URLClassLoader. access$100 (未知のソース) で java.net.URLClassLoader$1.run (未知のソース) で java.net.URLClassLoader$1.run (未知のソース) で java.security.AccessController.doPrivileged (ネイティブ メソッド) で java.net.URLClassLoader java.lang.ClassLoader.loadClass の .findClass(未知のソース) sun.misc.Launcher$AppClassLoader.loadClass の (未知のソース) java.lang.ClassLoader.loadClass の (未知のソース) org.eclipse.jdt でorg.eclipse.jdt.internal.junit.runner の .internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:685)。org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) の RemoteTestRunner.loadClasses(RemoteTestRunner.java:421) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests( RemoteTestRunner.java:675) の org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) の org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java: 192)メイン (RemoteTestRunner.java:192)メイン (RemoteTestRunner.java:192)

注: 私は testfx-core と testfx-junit 4.0.1-alpha を使用しています。

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

java - TestFX のインストール方法を教えてください。

JavaFX GUI のテストを自動化するために、Windows 上の Eclipse (Neon) で一連の jUnit テストをまとめたいと考えています。TestFX はこの種のことの蜂の膝のようですが、インターネットをかなり見回しても、Maven または Gradle を使用せずに TestFX をインストールする方法はまだわかりません。

私は Maven と Gradle に詳しくありません。簡単な手順に従ってMaven 経由で TestFX をインストールしようとしても失敗しました。これは Eclipse Mars で行われました。その後、私の単純な GUI プログラムは、メイン クラスを見つけたりロードしたりできないというコンパイル エラーと、 Selection にメイン タイプが含まれていないという実行時エラーをスローしました。(以前は、単純な GUI プログラムはエラーなしで実行されていました。) この後、最新の Eclipse Neon をダウンロードして、新たに開始しようとしました。

これは私がしたことです:

  1. eclipse.orgから Eclipse Neon をダウンロードしてインストールします。
  2. TestProject (実行環境 JavaSE-1.8) という Java プロジェクトを作成します。
  3. アクセスを許可しjavafx/**ます (プロジェクトを右クリック -- プロパティ -- Java ビルド パス -- ライブラリ -- JRE システム ライブラリ -- アクセス ルール -- 追加)。
  4. 最小限の内容で MyClass を作成します。
  1. testfx リポジトリ( 「プロジェクトで TestFX を使用する方法」の「直接ダウンロード」セクションからリンクされている)testfx-core-4.0.0-20150226.214553-8.jarからファイルを私の Eclipse プロジェクトにコピーし、 JRE System Libraryと同じレベルに配置します。
  2. jar ファイルをビルド パスに追加します (プロジェクトを右クリック -- プロパティ -- Java ビルド パス -- ライブラリ -- JARS を追加) - これにより、参照ライブラリと呼ばれるディレクトリが自動的に作成され、jar ファイルがそこにコピーされます。と
  3. JUnit テストを作成し (ソース フォルダーを右クリック -- 新規 -- JUnit テスト ケース)、テストフィールドの下に適切なパッケージクラスを入力し、テスト ケースに名前(MyTest) を付けます。

次に、クラス MyTest を拡張して testfx を使用しようとしました。

2 番目のケースのコードは次のとおりです。

GuiTestいずれの場合も、Eclipse はスーパークラス/ApplicationTestを型に解決できないと文句を言います。

問題は、testfx を正しくインストールしていないことだと思います。誰でも助けることができますか?

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

javafx - TestFX 4 でそれを行う方法は?

testFx 4 について質問があります。TextField ("#searchField") にテキストを設定したい GUI オブジェクトがあります。

TestFx 3 では次のように動作します。

それで、それはうまくいき、すべてうまくいきます。

TestFx 4 で 100% 同じケース:

私は常に "FxRobotException: クエリ "#searchField" がノードを返しませんでした。そのため、彼は同じ TextField を "表示" しません...

私は何を間違っていますか?きっと私には見えない本当にばかげたものだと思います... 誰か助けてくれませんか? ありがとう!