Testing 这是使用junit测试用户界面的合理方法吗?

Testing 这是使用junit测试用户界面的合理方法吗?,testing,junit,Testing,Junit,所以我开始越来越多地使用junit,越来越多地使用测试驱动开发,我对此感觉非常好 然而,我在尝试测试用户界面时遇到了问题——我的第一反应是junit创建了一个机器人,该机器人通过鼠标和键盘来模拟人类在测试中的工作——但这感觉既不雅观,也不太适应变化。我是不是完全错了?在这种情况下,最佳做法是什么 我正在研究的特定案例是基于SWT的,但任何一般概述都会很好:)这取决于您正在测试的用户界面类型,但对于web测试,请查看,它可以自动化浏览器,并允许您浏览网站等 对于Swing测试,请参阅,它对Swin

所以我开始越来越多地使用junit,越来越多地使用测试驱动开发,我对此感觉非常好

然而,我在尝试测试用户界面时遇到了问题——我的第一反应是junit创建了一个机器人,该机器人通过鼠标和键盘来模拟人类在测试中的工作——但这感觉既不雅观,也不太适应变化。我是不是完全错了?在这种情况下,最佳做法是什么


我正在研究的特定案例是基于SWT的,但任何一般概述都会很好:)

这取决于您正在测试的用户界面类型,但对于web测试,请查看,它可以自动化浏览器,并允许您浏览网站等

对于Swing测试,请参阅,它对Swing应用程序也有相同的作用


对于接口的实际测试,这些表示通常的方法,尽管有时我只是直接使用调用web页面并直接查看结果(例如检查页面上是否有错误)。这通常可以更简单地设置,并且作为一个测试不那么脆弱。

这取决于您正在测试的用户界面的类型,但是对于web测试,请查看,它可以自动化浏览器,并允许您浏览网站等

对于Swing测试,请参阅,它对Swing应用程序也有相同的作用

对于接口的实际测试,这些表示通常的方法,尽管有时我只是直接使用调用web页面并直接查看结果(例如检查页面上是否有错误)。这通常可以更简单地设置,并且作为一种测试,不那么脆弱。

我正要建议。这显然不支持SWT

几乎所有基于“机器人”的测试都是脆弱的——如果GUI发生变化,您可能会花费大量时间来修复测试。如果你打算写一个框架,你可以从。这有一个很好的模型驱动GUI测试特性。但是,Jemmy不能直接用于junit测试

重构UI以进行测试可以获得良好的设计。如果你愿意接受这样的想法,试试我想建议的。这显然不支持SWT

几乎所有基于“机器人”的测试都是脆弱的——如果GUI发生变化,您可能会花费大量时间来修复测试。如果你打算写一个框架,你可以从。这有一个很好的模型驱动GUI测试特性。但是,Jemmy不能直接用于junit测试


重构UI以进行测试可以获得良好的设计。如果你对这样一个想法持开放态度,就在它发生的时候尝试一下——结果是在swt的特定情况下(不是一般情况,这就是我接受另一个答案的原因)——我真正想要的是在它发生的时候——结果是在特定情况下(不是一般情况,这就是我接受另一个答案的原因)swt的-我真正想要的是

你检查过了吗