0

ボタンをクリックするだけのFESTを使ってスイングテストを作ってみました。残念ながら、new FrameFixture(...) の実行中にテストがハングします。JFrameから拡張されたビューを内部的に作成するコントローラーをインスタンス化しています。メソッド getView() は、この JFrame を提供します。

@Override
protected void onSetUp() {
    drawingCalculator = new FrameFixture(createCalculator());
    drawingCalculator.show();
}

@RunsInEDT
private static MainWindow createCalculator() {
    return execute(new GuiQuery<MainWindow>() {
        protected MainWindow executeInEDT() {
            MainModel model = new MainModel();
            return new MainController(model).getView();
        }
    });
}

new FrameFixture(...) で一線を越えられません。テストをデバッグしたところ、この時点でフレームワークでハングします。

BasicRobot.class

 private static Object acquireScreenLock() {
   Object screenLockOwner = new Object();
   ScreenLock.instance().acquire(screenLockOwner);
   return screenLockOwner;
 }

これはフレームワークのバグですか、それとも単にライブラリの使い方が間違っているのでしょうか?

4

1 に答える 1

0

間違ったコンストラクターを使用していました。私はすべきだった:

 drawingCalculator = new FrameFixture(robot(), createCalculator());

これにより、このテストケース用の新しいロボットが作成されます。

于 2012-12-28T13:11:37.057 に答える