什么是基于Swing的应用程序的最佳测试工具?
当我们尝试为应用程序设置尽可能多的单元测试时,我总是发现缺少UI级别的测试。那里有很多选择,但是我不确定哪是一个很好的起点。
我们首选的用于测试Swing应用程序的单元测试工具是什么?你为什么喜欢它?
解决方案
回答
尝试磅:http://pounder.sourceforge.net/
回答
在我们这边,我们使用FEST测试SWING GUI。这是经典摇摆机器人上的适配器,但极大地简化了它的使用。
与TestNG结合使用,我们发现这是一种通过GUI模拟"人为"行为的简便方法。
回答
我有一次玩过QF-TEST的机会。它是商业性的,但是提供了很多功能。也许我们可以看一下:http://www.qftest.de/en/index.html
回答
考虑一下Marathon(http://www.marathontesting.com/Home.html)-测试是用Jython编写的,因此可以很容易地基于对象状态编写任何种类的谓词。
回答
我喜欢Jemmy,这是为测试Netbeans而编写的库。
回答
我们可以尝试使用Cucumber和Swinger用普通的英语编写针对Swing GUI应用程序的功能接受测试。 Swinger在后台使用Netbeans的Jemmy库来驱动该应用程序。
Cucumber允许我们编写如下测试:
Scenario: Dialog manipulation Given the frame "SwingSet" is visible And the frame "SwingSet" is the container When I click the menu "File/About" Then I should see the dialog "About Swing!" Given the dialog "About Swing!" is the container When I click the button "OK" Then I should not see the dialog "About Swing!"
观看此Swinger视频演示以实际操作。
回答
如果目标应用程序具有自定义组件,我绝对会推荐Marathon来自动化测试。
我被赋予了使用几个极其复杂的自定义组件自动化应用程序的任务,这些组件是完全由内部编写的。我经历了为期两个月的审查过程,在此过程中,我从近30种可用的商业和FOSS测试工具清单中决定了使用哪种测试工具。
它是唯一能够成功实现我们特定定制组件自动化的测试工具。 IBM的Rational Functional Tester,Microfocus的TestPartner,QF-Test,Abbot和FEST失败了。
从那以后,我就能够成功地将测试与Cruise Control集成在一起,从而使它们在完成应用程序的每次构建时都可以运行。
不过要注意一点:
1)在处理JTables的方式上,它的边缘相当粗糙。我通过为他们编写自己的代理类来解决这个问题。
2)尚不支持拖放动作的记录/重放。