ボタンをクリックするだけの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;
}
これはフレームワークのバグですか、それとも単にライブラリの使い方が間違っているのでしょうか?