我需要测试一个使用Swing GUI接口的应用程序。我有一个客户端/服务器设计,希望模拟客户端输入(从客户端的界面)并检索服务器响应。
到目前为止,我已经研究了JDK7的jfcUnit和UISpec4J,并在NetBeans下使用。尝试使用jfcUnit(使用NamedComponentFinder)从窗口实例中查找命名组件没有返回任何结果,示例来自登录屏幕示例下的此处。我假设名称是它在类中的字符串变量名称。
我用于搜索客户端"连接"按钮的测试方法如下,该按钮给出了空列表结果,其中gui是客户端gui类(遵循上面登录示例的其余部分):
@Test
public void testConnectVisible () {
NamedComponentFinder finder = new NamedComponentFinder(JComponent.class, "connectBtn" );
List allItems = finder.findAll(gui);
System.out.println(allItems.toString());
}
另一个是UISpec4J,尽管我找不到与JDK7兼容的.jar。它的文件比较完整,也比较合适。
有人知道JDK7下合适的GUI测试框架吗,或者JDK7下UISpec4J/jfcUnit的一个工作示例吗?我需要一些在客户端模拟基于事件的触发的方法。
编辑我还想模拟多个客户端,这需要一个在一个测试实例中支持多个客户端窗口的测试框架。
非常感谢:)
一般来说,最好不需要在GUI中进行太多测试。GUI代码中不应该有任何业务逻辑。所有GUI代码都应该只调用业务层中的代码。
业务层中的代码很容易使用普通的单元测试进行测试。这将使您的GUI测试数量尽可能少。
说了这么多,很多年前我使用了一个名为abbot的框架,听起来就像你需要的。我刚刚查看了他们的网站,它说它应该与Java7兼容,并针对Java6进行了测试。