有时我真的需要检查数据库中的某些内容,
但是,如果我立即使用 u = User.last 进入数据库,那么 AJAX 请求可能不会完成并且在 User.last 中 - 我会找到旧记录。
所以为此我需要一些解决方法,例如,
断言 has_content? 'Success' do # 这里我们访问数据库端
我们检查成功消息,哪个服务器响应,这是我们可以进入数据库的标志。我怎样才能做到这一点?提前谢谢大家。
有时我真的需要检查数据库中的某些内容,
但是,如果我立即使用 u = User.last 进入数据库,那么 AJAX 请求可能不会完成并且在 User.last 中 - 我会找到旧记录。
所以为此我需要一些解决方法,例如,
断言 has_content? 'Success' do # 这里我们访问数据库端
我们检查成功消息,哪个服务器响应,这是我们可以进入数据库的标志。我怎样才能做到这一点?提前谢谢大家。
你不需要一个块,只需做一个然后另一个。内容断言将等待内容存在,这将确认 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 布尔方法的结果,因为失败时的错误消息会更清晰。