一个用于 Swing UI 的单元测试框架

18

测试UI很困难。你认为什么是适用于Swing的最佳单元测试框架?

3个回答

8

在我看来,目前最好的是FEST


3
FEST现在更名为AssertJ-Swing。 - Ryan

7

你认为哪个单元测试框架最适合Swing?

好问题。我无法帮助你回答。我可以指向我从Misko Hevery的网站阅读过的有关UI测试的文章。

Misko Hevery的建议

  • 我想向您介绍Google的测试专家Misko Hevery的网站。他谈了很多关于如何编写易于测试的代码。
  • 例如,当阅读他的优秀幻灯片“如何编写难以测试的代码”时,他在第45/288张幻灯片上指出修复渲染错误的成本相对较低。我认为他是正确的,您不应过于担心UI代码覆盖率达到100%。
  • 他还有一些关于如何测试您的UI的好建议。

    重要的是将图形用户界面与控制逻辑和数据分开。这可以通过标准的模型视图控制器设计模式实现。

ObjectMentor

这是一个关于测试的网站。我从Michael Featers那里发现了一篇有趣的文章,解释了UI测试自动化工具就像蛇油一样


5

我一直在使用基于JUnit的Jemmy。您可以在此处查看他们示例中的一个片段测试用例操作

    new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
        .startApplication();
    JFrameOperator mainFrame = new JFrameOperator("GUI Browser");

    new JButtonOperator(mainFrame, "Reload In").push();
    new JLabelOperator(mainFrame, "Reloaded");

    JTreeOperator tree = new JTreeOperator(mainFrame);

    //click in the middle of the tree
    tree.clickMouse();

    //collapse node     
    tree.collapsePath(tree.findPath("", "|"));

    //expand node       
    tree.expandPath(tree.findPath("", "|"));

    //select node
    tree.selectPath(tree.findPath("GUI Browser", "|"));

    JTextFieldOperator testField = new JTextFieldOperator(mainFrame);

    //type new value in the text field
    testField.clearText();
    testField.typeText("3");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接