問題タブ [fest]
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.
java - 流暢なインターフェースの拡張
Fluent Assertionsを使い始めてとても気に入っていますが、次のような一般的な方法で既存のテストを拡張できるかどうか疑問に思っています。
hasSizeAtLeast(int limit)メソッドを追加GroupAssertstartsWithIgnoringCase(String prefix)メソッドを追加StringAssert- 次のような代替手段を使用します
x.either().isIn(someSet).or().isNull()
これらは、すぐに必要になる可能性のある例にすぎません。それぞれにいくつかの回避策を講じることができますが、読みやすさと流暢なインターフェースの使いやすさが失われます。
私の最後の例は、 iff bothx.isIn(someSet)とx.isNull()do をスローすることを意図しています。
java - Thread.sleep(time)とrobot.wait(time)
JUnitとFESTを使用してGUIと統合テストを作成しようとしています。これが私が持っているものです:
robotargsすでに初期化されています。
電話をかけると、なぜこのような例外が発生するのwaitですか?電話をかけたときに同じ例外が発生しないのはなぜsleepですか?
java - BasicRobotの使用中のIllegalThreadStateException
BasicRobot(FEST)を使用しようとすると、次のようになります。これを修正する方法がわかりません。
コードは次のとおりです。
どうすればこれを修正できますか?
java - Java アプレットで FEST-Swing を使用する
FEST-Swingには、Java アプレットでの UI アクションを自動化する機能があることがわかりました。
FEST-Swing は、デスクトップ アプリケーションやアプレットもテストできます (ビューアおよびブラウザ内)。
その機能を確認するスクリプトを作成しようとしましたが、アプレット ソースを FEST にロードしてアクションを実行する方法がわかりませんでした。
Java アプレットを FEST にロードするにはどうすればよいですか? 具体的には、以下のアプレットを FEST にロードする方法の例が欲しいです。 http://java.sun.com/applets/jdk/1.4/demo/applets/GraphicsTest/example1.html
スクリプトで必要なのは、[次へ] ボタンと [前へ] ボタンをクリックすることだけです。
java - FESTにアプリケーションのロードを待機させる
FESTベースのGUIテストは初めてです。
MyFrameは、私のアプリケーションのルートクラスです。
テストケースを実行すると、
上記の方法では、ラベルに存在する実際の文字列は出力されません。
FESTAPIはアプリケーションのロードを待っていないと思います。
GUI要素のルックアップを延期するために利用できる方法はありますか?
java - 正しいコンポーネント名を取得して FEST テストで使用する方法
setnameSwing アプリケーションでボタンを定義するために使用しています。FEST コードで名前を使用したいと考えています。これはソースコードです:
それでは、フェスト コードで使用できるように、ここに名前を付けた結果はどうなるでしょうか。
java - コンポーネントが存在するのを FEST:s コンポーネント ルックアップ メカニズムに待機させる
重複の可能性:
FEST がアプリケーションのロードを待機するようにする
注: この質問は基本的にこの質問と同じです。その質問に対する答えがなかったので、私はそこから例を実行可能な SSCE に拡張し、いくつかの追加情報を提供することにしました。
したがって、問題は、探しているコンポーネントがまだ存在しない可能性がある場合に、コンポーネントのルックアップをどのように処理すべきかということです。この単純な 1 つのラベルの GUI を見てください。
そして、このテストケース:
何が起こるのですか?ラベル コンポーネントの構築は、遅いワーカー スレッドに委譲されます。そのため、GUI が表示されたときにすぐにラベルが表示されるわけではありません。テスト ケースの実行時にラベルが表示されていないため、 でコンポーネント ルックアップを実行するframeWrapper.label("theLabelName")と、ComponentLookupException がスローされます。
問題は、この例外がスローされないようにするにはどうすればよいかということです。それが最上位のコンポーネントであるWindowFinder.findFrame("title").withTimeout(10000)場合、フレームが表示されるまでに遅延がある場合でも、フレームを見つけることができる FrameFinder オブジェクトを取得することができます。私が欲しいのはそれに似たものですが、JLabelなどの他のタイプのコンポーネント用です。
注: 確かに、この機能を自分で実装するのはそれほど難しくありません。行うのはかなり簡単です:
ただし、このようなループでテスト スクリプトをごちゃごちゃにする必要はありません。コンポーネントを待機することは、テスト スクリプトではあまり珍しいタスクではないように感じます。したがって、私の意見では、FEST でこれを行うためのサポートが必要です。多分これはそうではありませんか?コンポーネントを待つことはできませんか?
java - FEST を使用して特定のコンポーネントを取得する方法
FESTに問題があります:
に 4 つJtextFieldの がありJDialogます。属性、、およびが未定義または nullであるJTextField4 つの がある場合、どうすれば特定のものを取得できますか。JTextFieldnametextvisibility
java - Swingアプリケーションの実行中にAWTEventQueueを置き換える安全な方法
私が維持しているSwingアプリケーションのさまざまな散発的な問題は、デフォルトのAWTイベントキューをを使用して独自のカスタムバージョンに置き換える方法が原因であると思われますToolkit.getDefaultToolkit().getSystemEventQueue().push(new AEventQueue())。たとえば、Swingアプリケーションのスレッド化とデッドロックを参照してください。そこで説明されている問題は解決されましたが、私のテスト(FEST Swingを使用)はデッドロックに陥る傾向があります。
最善の解決策は、Swingコンポーネントが作成される前に、アプリケーションの初期化の開始時にイベントキューを置き換えることだと思います。ただし、それを厄介にするいくつかの依存関係があるため、当面は、初期化後に新しいイベントキューを「プッシュ」する安全な方法を見つけようとしています。
私が試した2つのアプローチは
SwingUtilities.invokeLater();を使用してEDTの新しいキューをプッシュします。- 初期化後、および使用後に新しいキューをメインスレッドにプッシュし
invokeLater()て、古いEDTですでに開始されているものとのデッドロックを回避します。
https://stackoverflow.com/a/8965448/351885を読んだ後、私が期待するのは、最初のアプローチはJava 7で機能するかもしれませんが、2番目のアプローチのようなものがJava1.6で必要になるかもしれないということです。実際、2番目はJava 1.6で機能しますが、Java 7では両方とも正常に完了するように見えますが、実行速度は非常に遅くなります。アプリケーション自体は非常に応答性が高いように見えるため、これはFESTの問題である可能性があります。
したがって、少なくともJava 1.6で機能する2番目のアプローチを使用することを余儀なくされていますが、これを実装するためのより安全な方法があるかどうかを知りたいと思います。invokeLater新しいキューが作成された後、作成される前に、既存のキューにイベントが表示されます。-別のアプローチがある場合は、代わりに使用する必要があります。
より詳しく
最初の「解決策」は次のようになります。
Java 1.6を使用してコンパイルおよび実行すると、Java1.6が何をしているのかわかりません。スレッドは、すでに保持しているロックを待機しているようです。
2番目の「ソリューション」は次のようになります。
上で述べたように、これはJava 1.6で問題なく動作するようですが、本当に安全であるとは確信していません。
Java 7を使用しているときに何が起こっているのかわかりませんが、メインスレッドはメソッドのスリープに長い時間を費やしているようです。そのためorg.fest.swing.timing.Pause.pause()、これはFEST固有の問題である可能性があります。
java - FESTクリックすると新しいフレームがスイングし、新しいフレームフィクスチャを作成できません
Fest Swingテストを作成しようとしていますが、フレームフィクスチャの作成/検索に問題があります。2つのJFrameがあり、一方はクリックするともう一方が開きます。次のいずれかを実行します。
1.)開いた新しいJFrameのフレームフィクスチャを見つけます
2.)作成された新しいJFrameオブジェクトから新しいフレームフィクスチャを作成します(元のJFrameオブジェクトからオブジェクトを取得できます)。
使ってみました
フレームを見つけるために、しかしEdtViolationExceptionに遭遇します。
私も試しました
しかし、最後の行はEdtViolationExceptionも与えました。助言がありますか?ありがとう!