問題タブ [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 に答える
92 参照

javafx - この場合、GroovyMock を使用しなければならないのはなぜですか?

MCVE は次のとおりです。

main.groovy:

testfx.groovy:

build.gradle:

ファイル src/main/resources/core/mainWindow.fxml の詳細は重要ではありませんが、例を次に示します。

上記のテストは失敗します。実際のメソッドStage.show()が呼び出され、それがモックであるという事実は無視されます。これを aから
a に変更すると、代わりにモック メソッドが使用され、テストに合格します。通常の Spockが無視される のはなぜですか?MockGroovyMockshow()
Mock

0 投票する
0 に答える
289 参照

java - TestFX ロボットの速度を変更しますか?

具体的にはWriteRobot/ WriteRobotImpl. 書くのがかなり遅いようで、もっと速く書きたいと思っています。

編集
MSのコメントに応えて、私はこれを試しました(注:この時点では、それWriteRobotが関与していることはわかっていませんでしたTypeRobot):

残念ながら、1 ミリ秒に設定しても、タイピング速度に違いはないようです。

編集
Slaw のコメントに注意します。

Systemテストを実行する前にプロパティを設定しましたtestfx.robot.write_sleep。これは、WriteRobotImpl.java の上部にあるソース コード (以下を参照) から、影響がある可能性があることを確認できたにもかかわらず、効果がありませんでした。これを 500 ミリ秒に設定しても何の効果もありませんでした。なんらかの理由でプロパティがそこのコードに表示されていないと判断したため、デフォルトの 25 ミリ秒が設定されていました。

NB 考えられるその他の原因: そこのコードに従うと、WriteRobot.write常に が呼び出されWriteRobot.typeCharacterInScene、次に と がBaseRobot.typeKeyboard呼び出されるように見えますWaitForAsyncUtils.waitForFxEvents。後者は「難しい顧客」である可能性があります。押された各キーが「イベントを待つ」必要がある場合は、何もする必要がない可能性があります。

org.testfx.robot.impl.WriteRobotImpl.java の上部にある次の行がSystemプロパティを認識できない理由を解明しようとしています:

また、テストが実行される前にプロパティstatic{...}を設定する必要があるよりも早くコード ブロックが発生するのではないかと考えました。Systemこのプロパティをgradle.buildで設定してみました。まだ成功していません。