【发布时间】:2010-09-22 17:06:16
【问题描述】:
我们有一个 Ruby on Rails 应用程序,它在视图中使用了一些 javascript。由于我们对应用程序的其余部分有很好的测试覆盖率,我们想在这里继续。我们使用的 js 操作 DOM 以显示/隐藏 div 并执行增量搜索以从表中选择组合框。
有人知道测试 DOM 操作的方法吗?
弗兰克
【问题讨论】:
标签: javascript ruby-on-rails unit-testing dom
我们有一个 Ruby on Rails 应用程序,它在视图中使用了一些 javascript。由于我们对应用程序的其余部分有很好的测试覆盖率,我们想在这里继续。我们使用的 js 操作 DOM 以显示/隐藏 div 并执行增量搜索以从表中选择组合框。
有人知道测试 DOM 操作的方法吗?
弗兰克
【问题讨论】:
标签: javascript ruby-on-rails unit-testing dom
你可以使用java库HttpUnit或HtmlUnit来测试被JS操作后完成的DOM。
http://htmlunit.sourceforge.net/javascript-howto.html http://httpunit.sourceforge.net/doc/cookbook.html
两者都使用功能齐全的 JavaScript 引擎 Mozilla Rhino,然后添加自己的 DOM 实现。
这将允许您在后台自动运行这些测试,而不会产生任何浏览器或副作用。
奖励:您可以使用 JRuby 直接从 Ruby 调用这些库。
【讨论】:
jQuery 库附带了一个非常好的单元测试库,您可以使用它来测试 dom 操作。该库称为 QUnit。
【讨论】:
我只是answered a similar question。简而言之:看看Dojo's DOH、doh.robot和dijit.robotx(DOH不需要使用Dojo,也不依赖Dojo)。
【讨论】:
在过去,我使用 jsUnit 完成此操作。
【讨论】:
将 capybara https://github.com/jnicklas/capybara 与支持 JS 的驱动程序一起使用,例如 capybara-webkit 或 poltergeist。
【讨论】: