虽然我们尝试在时间允许的情况下设置尽可能多的单元测试,但我总是发现缺少UI级别的测试.有很多选择,但我不确定什么是一个好的开始.
您首选的测试Swing应用程序的单元测试工具是什么?你为什么喜欢它?
是否有替代Fest,以便替换可以以黑盒方式(而不是JUnit)驱动Java Swing UI并启用BDD?思特(https://code.google.com/p/fest/,http://fest.easytesting.org)自2013年起已被放弃(https://github.com/alexruiz/fest-swing-1.x)由GitHub项目给出.
黄瓜(https://cucumber.io)和jbehave(http://jbehave.org)等Java BDD工具允许JUnit白盒风格的高级集成测试,但不能在黑盒中从外部驱动Swing UI方式.
由于人力资源的限制,将UI从Swing切换到JavaFX不是一种选择.
目前的相关问题落后于时代
在使用 Swing 开发 Java 桌面应用程序时,我遇到了直接测试 UI 的需要,而不仅仅是通过单元测试测试底层控制器/模型类。
这个答案(关于“基于 Swing 的应用程序的最佳测试工具是什么?”)建议使用FEST,不幸的是,它已停止使用。然而,有一些项目是从 FEST 离开的地方继续进行的。特别是一个(在这个答案中提到)引起了我的注意,因为我之前在单元测试中使用过它:AssertJ。
显然有AssertJ Swing,它基于 FEST 并提供了一些编写 Swing UI 测试的易于使用的方法。但是,进行初始/工作设置仍然很麻烦,因为很难说从哪里开始。
如何为以下示例 UI 创建最小的测试设置(仅包含两个类)?
约束:Java SE、Swing UI、Maven 项目、JUnit
public class MainApp {
/**
* Run me, to use the app yourself.
*
* @param args ignored
*/
public static void main(String[] args) {
MainApp.showWindow().setSize(600, 600);
}
/**
* Internal standard method to initialize the view, returning the main JFrame (also to be …Run Code Online (Sandbox Code Playgroud) 我想为我的应用程序进行集成测试和系统测试,但是产生良好的集成和系统测试通常需要我付出很多努力,而我并没有费心.我尝试了几次,我编写了定制的,特定于应用的测试线束,这种感觉就像每次重新发明轮子一样.我想知道这是不是错误的做法.是否存在集成和完整系统测试的"标准"方法?
编辑:澄清,它是桌面和Web应用程序的自动化测试.理想情况下,它是一个完整的测试套件,可以运行应用程序的全部功