如何写Jemmy单元测试?

时间:2012-12-05 12:02:16

标签: java swing unit-testing jemmy

我正在寻找一种为我们的Java Swing GUI编写回归测试的好工具。我找到了jemmy2,我真的很满意。

但有一点缺点:正如jemmy示例所示,我必须将每个测试类编写为org.netbeans.jemmy.Scenario:测试代码转到public int runIt()方法。我更喜欢使用通常的给定时间结构和有意义的断言来进行更多传统的单元测试。我真的很想将jemmy与junit或testng等单元测试框架集成。

所以,问题是:我怎么能这样做?我知道这是可能的,因为JellyTools以特定于NetBeans的方式完成了它。

或者,如何从我的jemmy场景中获得有意义的错误报告?

3 个答案:

答案 0 :(得分:3)

Jemmy可以用于任何测试工具,如JUnit,TestNG,你有什么。

您不需要做任何特别的事情 - 只需直接从测试方法中使用Jemmy API。使用JUnit和TestNG,你也可以很好地运行经过测试的应用程序。

修罗

答案 1 :(得分:1)

与此同时,我了解到这很容易:

@Test
public void testSomething() throws Exception {
            //GIVEN
        ClassReference cr = new ClassReference("components.TableFilterDemo");
    cr.startApplication();
    frame = new JFrameOperator("TableFilterDemo");

            //WHEN
            //doing more steps

            //THEN
            //do TestNG assertions
}

最大的区别在于,这种测试可以抛出与Jemmy相关的异常。但是,它们是有意义的测试信息,所以没关系。

答案 2 :(得分:1)

至于“有意义的错误报告”......

一个不错的测试工具将创建一个报告,说明哪些测试失败。

如果您想了解更多错误,可以从过多的Jemmy日志中获取。您必须提供自己的日志记录才能在应用程序级别获得一些有意义的跟踪。

修罗