所以我开始越来越多地使用junit,因此越来越多的测试驱动开发,我感觉非常好。
然而,我在尝试测试用户界面时遇到了问题 - 我的第一个本能就是为了创建一个机器人,这个机器人可以对鼠标进行压缩,键盘模仿人类通过测试工作 - 但感觉两者都不优雅变化不是很有弹性。我接近这一切都错了吗?在这种情况下,最佳做法是什么?
我正在看的特定案例是基于SWT的,但任何一般概述都会很棒:)
答案 0 :(得分:2)
我即将建议uispec4j。显然,这不支持SWT。
几乎所有基于“机器人”的测试都是脆弱的 - 如果GUI发生变化,您最终可能会花费大量时间来修复测试。如果你打算编写一个框架,你可以从jemmy开始。这有一个很好的模型驱动的GUI测试功能。但Jemmy不能直接用于junit测试。
重构UI以便在良好的设计中测试结果。如果您愿意接受这样的想法,请尝试Model View Presenter pattern
答案 1 :(得分:1)
这取决于您正在测试的用户界面类型,但对于Web测试,请查看Selenium,它可以自动化浏览器,并允许您浏览网站等。
对于Swing测试,请查看FEST,这对于swing应用程序也是如此。
对于界面的实际测试,这些代表了常用方法,虽然我有时直接使用Apache HttpClient调用网页并直接查看结果(例如检查页面上没有错误) 。这通常可以更简单地设置,并且作为测试不那么脆弱。
答案 2 :(得分:1)
碰巧 - 事实证明,在特定情况下(一般情况下,这就是为什么我接受了另一个答案)swt - 我真正想要的是http://www.eclipse.org/swtbot/