如何使用capybara在页面上测试自动定期更新?

时间:2012-08-27 14:40:34

标签: javascript ruby-on-rails testing cucumber capybara

我有一个页面,用户可以暂时打开一段时间。 javascript正在使用setInterval进行更新。我怎么测试呢?

Scenario: Auto update dashboard
  When I am on the dashboard page
    Then I should see nothing on the page

  When someone added item
    Then I should see a new item on the page in few seconds

我可以把睡眠放到'添加了一个项目',但它是不是很好的方法呢? 无论如何,'睡眠'因某些原因对我不起作用。

提前致谢。

1 个答案:

答案 0 :(得分:0)

Capybara的has_content将自动等待(你可以决定多少)一些内容出现,所以你可以有这样的东西(rspec语法):

page.should have_content 'Update 1'
page.should have_content 'Update 2'
page.should have_content 'Update 3'

当然,测试两者之间的状态可能会有所帮助,但这可能已经足够了。

编辑:我假设间隔非常小,最多只需几秒钟,否则你的测试运行速度会非常慢。