Java Swing应用程序的单元测试

时间:2010-06-21 16:47:12

标签: java unit-testing swing

我正在寻找单元测试Swing应用程序,并想知道用几乎全线覆盖来实现这个目标的最佳(最简单)方法是什么。如果重要的话,我正在使用Eclipse Galileo进行开发。

感谢。

4 个答案:

答案 0 :(得分:6)

IMO FEST 目前是实现这一目标的最佳框架。只需使用它编写JUnit测试。更多信息在

http://fest.easytesting.org/

http://code.google.com/p/fest/

答案 1 :(得分:4)

你的问题很普遍,所以很难给出具体的答案。无论如何,我尝试: - )

我知道代码已经编写好了,所以实际上你正在使用遗留代码。这种情况的推荐读物是Michael Feathers的Working Effectively With Legacy Code

通常,可以更好地避免单元测试GUI元素。因此,最重要的是尝试将要测试的逻辑从GUI代码分离到更容易进行单元测试的POJO中。然后开始逐个编写包含逻辑的类的单元测试...首先尝试选择最关键的代码部分,以最大化您的投资回报。通常,实现这一目标的一种好方法是,无论何时触摸类/方法,都要为其编写单元测试。这样您就可以逐步增加代码覆盖率。

答案 2 :(得分:1)

这个问题让事情大开眼界,你真正想做什么类型的测试?

单元测试意味着在方法接口级别检查自定义代码,其工具是JUnit。

但是,您特别提到这是一个Swing应用程序,那么您是否正在寻找一种方法来自动化与GUI的交互以进行测试/回归?那是一匹不同颜色的马。在这种情况下,由于您提到使用eclipse,您可能需要查看GUIdancer。您还可以谷歌进行自动化UI测试,并看到有大量商业产品可供选择,但没有一般解决方案,每个都适合自己的环境利基。

答案 3 :(得分:-1)

我无法完全理解你的问题。一个全面的测试策略很难仔细计划。

但是,如果您使用单元测试框架(即JUnit)编写了您的测试用例,则可以使用代码覆盖工具(即Cobertura)分析您的软件。

Eclipse为JUnit提供了一个很好的插件,使用Ant或Maven可以很容易地将Cobertura集成到您的构建项目中。