0

有时我真的需要检查数据库中的某些内容,

但是,如果我立即使用 u = User.last 进入数据库,那么 AJAX 请求可能不会完成并且在 User.last 中 - 我会找到旧记录。

所以为此我需要一些解决方法,例如,

断言 has_content? 'Success' do # 这里我们访问数据库端

我们检查成功消息,哪个服务器响应,这是我们可以进入数据库的标志。我怎样才能做到这一点?提前谢谢大家。

4

1 回答 1

0

你不需要一个块,只需做一个然后另一个。内容断言将等待内容存在,这将确认 AJAX 已完成,然后您可以检查用户

assert_content 'Success' # will wait for 'Success' to appear
u = User.last # won't happen until after 'Success has appeared and therefor the AJAX has completed'

还要注意使用提供的 Capybara assert_content(而不是assert has_content? ...)。您通常希望更喜欢使用 Capybara 提供的断言而不是断言 Capybara 布尔方法的结果,因为失败时的错误消息会更清晰。

于 2017-12-11T17:31:47.663 回答