Ruby on rails 从RSpec 2.11升级到2.12
我正在升级RSpec,特别是在两个元素上有问题。我,特别是,我对这种方法有困难Ruby on rails 从RSpec 2.11升级到2.12,ruby-on-rails,rspec,capybara,Ruby On Rails,Rspec,Capybara,我正在升级RSpec,特别是在两个元素上有问题。我,特别是,我对这种方法有困难 def sign_in(user) visit root_path fill_in "Email", with: user.email fill_in "Password", with: user.password click_button "Sign in" # Sign in when not using Capybara as well. cookies[:remember_token]
def sign_in(user)
visit root_path
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_button "Sign in"
# Sign in when not using Capybara as well.
cookies[:remember_token] = user.remember_token
end
在那里我得到了一个错误
undefined local variable or method `cookies' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_3::Nested_3::Nested_1:0x79b9c90>
给予
的未定义方法“put”#
对于第一个错误,我试图遵循,但我似乎不知道如何从Capybara页面获取RSpec响应对象(调用
单击按钮的结果)。对于第二个错误,我真的不知所措。看起来RSpec刚刚删除了put
功能,我不知道如何取回它。这不是RSpec的问题,而是请求/集成与功能/控制器规范的问题
Capybara,或者更具体地说,“request”或“integration”规范不提供对请求方法(如put()或get())的访问-这些仅在活动规范/controllers/的控制器规范中存在。当您直接测试控制器时,cookies[]散列也是如此
作为解决方法。我刚刚尝试使用上述put方法在spec/controllers中创建一个新的spec,但现在我收到一个错误消息,说用户路径不可用。你知道如何将两者合并吗?这是什么时候改变的?它在RSpec和Capybara的早期版本中工作。
before {put user_path(user)}
undefined method `put' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_3::Nested_1::Nested_2::Nested_3:0x7939830>