好的,所以我正在尝试对一些 GUI 元素进行单元测试并断言该按钮应该做什么,发生。
但是,我现在想编写一个单元测试来测试同一个按钮的助记符部分是否与按钮单击相同。我已经断断续续地搜索了几天,并尝试了很多东西。
我尝试使用来自 awt 库的 Robot:
robot.keyPress(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_C);
没有触发任何事件,最近我尝试了这个 EventQueue 示例:
final Toolkit toolkit = Toolkit.getDefaultToolkit();
final EventQueue eventQueue = toolkit.getSystemEventQueue();
gPane = new SwingBuilder();
panel = new MainMenuPanel();
panel.displayMainMenu(gPane);
@Test
void ShouldMakeRaceGenderPanelVisibleKeyPress(){
eventQueue.postEvent( new KeyEvent(panel.gPane.mainM, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_C ).getKeyCode());
assertThat panel.gPane.mainM.isVisible(), is(false);
assertThat panel.gPane.raceGender.isVisible(), is(true);
}
我知道 GUI 测试可能很棘手,并且有一些工具可以模拟用户交互,但是模拟或触发单个 KeyEvent 真的那么难吗?
欢迎任何帮助,也欢迎任何推荐的 UI 测试工具。
谢谢
注意:这是 Java 和 Groovy 的组合,所以我使用 SwingBuilder 来构建我的 UI