就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,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/