2011-03-03 55 views
0

这可能有点矛盾。但我需要运行一个基本上显示java编辑器/视图等的“测试”,并让用户与视图进行交互,而无需启动剩余的应用程序。非终止java ui测试?

喜欢的东西:

public static void main(String[] args) { 
    Display display = new Display(); 
    final Shell shell = new Shell(display); 
    shell.setSize(500, 500); 
    shell.setLayout(new RowLayout()); 
    shell.setText("Composite Example"); 
    final Composite composite = new Composite(shell, SWT.NONE); 
    GridLayout gridLayout = new GridLayout(); 
    gridLayout.numColumns = 4; 
    composite.setLayout(gridLayout); 

    // Here the view is shown 
    MyExample sdf = new MyExample(composite, SWT.NONE); 

    shell.open(); 
    while (!shell.isDisposed()) { 
     if (!display.readAndDispatch()) 
     display.sleep(); 
    } 
    display.dispose(); 
    } 

是否有这样做(如使用JUnit)来创建这些用户交互测试,用户必须手动启动和终止的更系统的方式?

回答

1

您应该首先考虑将代码重构为更可测试的方式。看看模型 - 视图 - 控制器的设计模式,例如http://java.sun.com/blueprints/patterns/MVC-detailed.html

当正确完成后,所有实际操作都应该放在模型或控制器类中,这些类应该很容易用普通的JUnit测试进行测试。该视图将非常薄,仅创建实际的图形组件。通常不需要测试。

如果你仍然决定去GUI测试,我建议SWTBot作为Zoltán建议。它与Eclipse很好地集成。

1

我想,你需要一些GUI测试工具。我知道它不是你想要的,但它可以作为“按下GUI按钮”的自动化方式。

我建议或者SWTBotWindowTester进行实验。