【发布时间】:2018-12-21 22:26:24
【问题描述】:
我正在使用 TDD 开发一个 Swing 应用程序。我的逻辑很好地解耦并通过监听焦点事件触发。但我无法以编程方式触发这些事件。
我认为field.requestFocus() 会触发focusGained(),但事实并非如此。我读过这可能是因为没有显示器。
import junit.framework.TestCase;
public class SomeClassTest extends TestCase{
@Test
public void testSomeMethod() {
someLogic();
for (JTextField field : fields[]){
field.requestFocus();
assertTrue(condition);
...
}
如何触发“focusGained”和“focusLost”两个焦点事件?考虑到这是用于 junit 测试,没有 GUI 的选项会很棒。
编辑:使用答案中的模式我已经能够触发所有类型的 GUI 相关事件,希望它有所帮助。
【问题讨论】:
标签: java swing unit-testing junit tdd