我在eclipse下使用Junit4。
我想写一个能够发送动作的测试:ctrl+shift+P
我使用JTable尝试了这个,因为我不知道我可以使用哪个组件sendAcceleratorKey
:
myTable.sendAcceleratorKey(InputEvent.CTRL, InputEvent.SHIFT_DOWN_MASK)
但我不能添加第三个参数来说KeyEvent.P
。
如何发送更改菜单的动作?
谢谢!
答案 0 :(得分:4)
我猜你可以使用Robot类。
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_P);
Thread.sleep(1000); // Time for your code to react to the event
assert(...);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_P);
答案 1 :(得分:1)
我找不到对sendAcceleratorKey()
的任何引用。但如果它真的存在并且它能够满足您的需求,那么使用关键修饰符以这种方式使用方法看起来很合理:
myTable.sendAcceleratorKey(InputEvent.CTRL | InputEvent.SHIFT_DOWN_MASK,
KeyEvent.VK_P);
否则,尝试交换参数,具体取决于方法签名。
myTable.sendAcceleratorKey(KeyEvent.VK_P,
InputEvent.CTRL | InputEvent.SHIFT_DOWN_MASK);