gpt4 book ai didi

ruby-on-rails-3 - RSpec2 和 capybara

转载 作者:行者123 更新时间:2023-12-04 06:47:08 25 4
gpt4 key购买 nike

capybara 让我很困惑。如果我将 Capybara 与 Ruby on Rails 3 和 RSpec 2 结合使用,则在 RSpec 请求测试中,以下匹配器有效:

response.body.should have_selector "div.some_class"

响应对象具有类 ActionDispatch::TestResponse .但是下面这行,其中 should work officially ,不起作用:
page.should have_selector "div.some_class"

页面对象具有类 Capybara::Session .在哪些情况下您必须使用 response.body对象以及何时必须使用 page目的 ?

最佳答案

所以我遇到了类似的情况,这就是我认为发生了什么:

这取决于您在此处未包含的有关您如何访问页面的代码。我正在编写 rspec 请求规范。

如果我用 rspec 自己检索页面:

get '/some/path'

然后 response.body.should have_selector 像你说的那样工作,但 page.should 没有。

要使 Capybara 'page' 工作(并使 Capybara 交互如 click_button 或 fill_in 工作),而不是使用 rspec 的 'get' 检索,您需要使用 Capybara 的 'visit' 检索:
visit '/some/path'
page.should have_selector("works")

'page' 是一种 capybara 方法,只有在使用 capybara 方法 'visit' 时才会设置。

这确实令人困惑,rails 测试中涉及的不同库的所有混合和匹配。

关于ruby-on-rails-3 - RSpec2 和 capybara ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260720/

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