通过宏录制进行GUI单元测试

时间:2013-07-05 06:42:03

标签: java unit-testing junit

我最近获得了为现有的独立Java GUI应用程序编写单元测试的任务。

到目前为止,我编写了一个应用程序,允许用户通过记录鼠标和键盘输入(以及单个事件之间的时间)来创建宏并执行这些宏。这适用于检查应用程序是否存在严重错误,但目前无法检查底层GUI的数据。 如果我可以通过JUnit(assertequals等)检查数据,那将是非常好的。

我怎样才能做到这一点?这是一个反思的案例吗?

2 个答案:

答案 0 :(得分:2)

除非编写框架是你的任务的一部分,否则我建议避免重新发明轮子。

有各种用于测试swing UI的框架,几乎所有框架都支持junit。 查看fest-swing,了解exaple,它允许您从Junit测试UI组件。它还允许您断言下划线UI的属性(因此断言某个表在单击按钮后应该有5行,特定小部件应该处于特定状态等)

最好将它与你自己实现的模拟“后端”结合使用,或者使用模拟可能来模拟你的服务器/业务逻辑 - 为此看看mockito

答案 1 :(得分:0)

我对程序设计持怀疑态度。表示层听起来像是业务逻辑。这很糟糕。

我建议重构代码,但事实并非如此。每个GUI操作应对应于对逻辑层的调用。逻辑层应该有单元测试,而不是表示层,除非表示很复杂。