Ember 的验收测试助手提供了一个很好的抽象层,用于编写基于用户操作的纯验收测试,但这并不总是足够的。
在使用 Capybara 进行 Ruby/Rails 测试中,底层测试驱动程序(selenium-webdriver、phantomjs 等)可以通过调用在测试用例中访问page.driver
,然后其 API 直接用于执行抽象 API 未提供的操作,例如处理 cookie 和窗口大小。
例如:
page.driver.browser.manage.window.resize_to(width, height)
visit '/foo/bar'
page.driver.browser.action.key_down(:alt).send_keys("c").key_up(:alt).perform
这可以在 Ember-CLI 项目中完成吗,默认所有内容(qunit,testem)?
这个问题的背景是我们有一个功能,它强制用户在点击 OK 之前滚动到底部(就像 clickwrap 许可协议有时会让你做的那样,但它是为了别的东西)。对此的验收测试在 Chrome 中运行良好,但在 phantomjs 中失败,我们认为这可能是因为窗口或视口大小。 http://phantomjs.org/api/webpage/property/viewport-size.html
可能有其他方法可以解决此问题,但我仍然对直接访问测试驱动程序感兴趣,因为我认为这是一个有用的工具。