gwt - 测试 GWT 代码的最佳方法是什么

标签 gwt

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




测试 GWT 代码的最佳方法是什么?

托管模式下的 GWTTestCase 太慢,并且没有一个模拟框架工作。

目前我们按照 http://robvanmaris.jteam.nl/2008/03/09/test-driven-development-for-gwt-ui-code/ 中的建议遵循 MVC并使用 GWTMockUtilities disarm() 和 restore() 来模拟小部件。而且我们还没有找到在 GWT MVC 中测试 View 的方法。有没有更好的方法来测试 GWT 代码?

最佳答案

如果您希望单独测试 GWT 小部件,那么选择并不多。您可以使用 GWTTestCase 实例化您的小部件并通过其 API 对其进行测试,这就是 Google 为 GWT 小部件本身所做的:Source for RadioButtonTest

但是,事件触发机制在 GWTTestCases 中不起作用,这意味着您不能以编程方式单击按钮并期望在监听器上调用某些 onClick() 回调方法。即使不是不可能,也很难获得底层 DOM,因此它可能不是测试低级 HTML 发射代码的最佳工具。

听起来您正在遵循所有正确的步骤; Rob 的文章很好地描述了如何使用 Model-View-Presenter (MVP) 设计模式编写可测试的代码。您在 View 层之外保留的逻辑越多越好。如果无法做到这一点,请使用 Selenium 之类的工具来创建动态 UI 行为的集中测试。

我遵循了类似的策略——小部件中代码最少的 MVP。在少数情况下,我确实编写了一些代码来包装 Grid 类,因此我能够在 GWTTestCase 中实例化我的组件,将其传递给 Grid,在我的组件上调用一些方法,并检查 Grid 的状态。我为 Better Software 写了一篇关于 Test-First GWT 的文章,你可以阅读 on my blog .

如果您要测试使用非 UI GWT 类(例如 URL 编码或字典)的代码,则需要使用 GWTTestCase,或者遵循类似的包装策略,直到代码太简单而无法破解。然后使用 Selenium 之类的工具或一些目标 GWTTestCases 进行集成测试,这些工具仅测试您是否正确使用了该库——正如 J.B. Rainsberger 所说,“不要测试框架!”

关于gwt - 测试 GWT 代码的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/411257/

相关文章:

java - 似乎与 com.badlogic.gdx.utils.AtomicQueue<T> 有关的 libGDX GWT 编译错误

java - 如何从 ValueListBox 值中删除空值

java - 从 Scala 代码轻松创建 Java DTO 对象的实例

css - gwt 样式第 n 个子级与第一个子级碰撞

java - 我可以将 GWT 应用程序与普通的 Java 应用程序一起编写吗?

java - 使用 SuperDevMode 的打印堆栈跟踪被混淆了

gwt - 从另一个 Composite 调用 Composite 的 GWT 方法

iphone - 在手机上使用 GWT

java - gwtupload 用于 gwt 2.5.1 通用文件上传

javascript - smartgwt 禁用网格中的客户端过滤