[英]Rails 3 +Devise + RSpec: undefined method 'visit'
我遇到了奇怪的問題。 我之前從未使用過Devise gem。 所以,我嘗試編寫簡單的RSpec測試:
require 'spec_helper'
describe "Admins" do
before(:each) do
@email = "test@test.ru"
user = FactoryGirl.create(:user, :email => @email )
end
describe "sign in/out" do
describe "success" do
it "should sign a user in and out" do
visit new_user_session_path
end
end
end
end
我收到這樣的錯誤:
1) Admins sign in/out success should sign a user in and out
Failure/Error: visit new_user_session_path
NoMethodError:
undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1::Nested_1:0x007fb2b7e393d0>
# ./spec/requests/admins_spec.rb:12:in `block (4 levels) in <top (required)>'
Finished in 0.05646 seconds
我的工廠:
FactoryGirl.define do
factory :user do |user|
user.admin true
user.password "qwerty"
user.sequence(:email) { |n| "user#{n}@user.com" }
end
end
路線:
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
將任何使用capybara的測試從spec / requests移動到spec / features。
http://alindeman.github.com/2012/11/11/rspec-rails-and-capybara-2.0-what-you-need-to-know.html
visit
是水豚方法,而不是Rspec。 你必須添加capybara
寶石你的Gemfile,運行bundle
,並require 'capybara/rspec'
在spec_helper,就像ArcaneRain指出。
您必須將Capybara DSL添加到spec_helper
.
.
.
RSpec.configure do |config|
.
.
.
config.include Capybara::DSL
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.