2

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

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

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

4

2 回答 2

2

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

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

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

于 2013-07-05T06:53:02.283 回答
0

我对程序设计持怀疑态度。表示层听起来像是有业务逻辑。这是不好的。

我建议重构代码,这样就不是这样了。每个 GUI 操作都应对应于对逻辑层的调用。逻辑层应该有单元测试,而不是表示层,除非表示很复杂。

于 2013-07-05T06:47:04.517 回答