gpt4 book ai didi

ruby-on-rails-3 - 更改为 capybara-webkit 后单个测试失败

转载 作者:行者123 更新时间:2023-12-05 00:33:50 25 4
gpt4 key购买 nike

我已经为我的 rails 3.2 应用程序编写了一些 RSpec 测试,因为我被弹出的浏览器所困扰,我试图从 firefox 更改为 capybara-webkit .
在此之后,所有测试仍在运行,除了一个。失败的线路是:

expect { click_button "Create" }.to change(Answer, :count).by(count)

如果我删除了expect并添加了一个前后截屏的方法,我可以看到测试运行正确。但是,如果我使用调试器进行调试,日志会显示记录是在第二个屏幕截图行之后创建的。我可以永远等待 click_button 和相应的 Controller 操作在下一行执行后运行。

“创建”按钮是一个标准的 html 按钮,创建操作不涉及任何 JS。某人对这种奇怪的行为有解释吗?

最佳答案

Capybara 将单击操作发送到服务器与您检查数据库的测试之间存在竞争条件。

解决此问题的最简单方法是在检查之前等待:

expect { click_button "Create"; sleep 2 }.to change(Answer, :count).by(count)

我不喜欢这个。测试这一点的更好方法是从最终用户的角度进行检查。

例如,点击“创建”后,用户是否在答案页面上看到了答案?
fill_in :title, :with => "My answer"

click_button 'Create'

page.should have_text "My answer"

关于ruby-on-rails-3 - 更改为 capybara-webkit 后单个测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11477554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com