我有一个页面,用户可以暂时打开一段时间。 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
我可以把睡眠放到'添加了一个项目',但它是不是很好的方法呢? 无论如何,'睡眠'因某些原因对我不起作用。
提前致谢。
答案 0 :(得分:0)
Capybara的has_content将自动等待(你可以决定多少)一些内容出现,所以你可以有这样的东西(rspec语法):
page.should have_content 'Update 1'
page.should have_content 'Update 2'
page.should have_content 'Update 3'
当然,测试两者之间的状态可能会有所帮助,但这可能已经足够了。
编辑:我假设间隔非常小,最多只需几秒钟,否则你的测试运行速度会非常慢。