非终止java ui测试?

时间:2011-03-03 19:39:38

标签: eclipse testing user-interface

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

类似的东西:

  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)创建用户必须手动启动和终止的用户交互测试?

2 个答案:

答案 0 :(得分:1)

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

我建议SWTBotWindowTester进行试验。

答案 1 :(得分:1)

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

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

如果您仍然决定进行GUI测试,我建议使用SWTBot作为Zoltán的建议。它与Eclipse很好地集成。