我有一個幫助程序方法的Rspec測試,它需要訪問由Devise提供的我的current_user
方法。問題是當我在我的測試中使用login_user
宏來幫助他們不工作!Rspec幫助程序測試需要訪問控制器方法
這裏是我的測試樣子:
describe 'follow_link' do
before :each do
login_user
end
it "display 'follow' if the curren_user is not following" do
user = Factory :user
helper.follow_link(user).should == 'Follow'
end
end
但它失敗,此:
Failure/Error: login_user
NoMethodError:
undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x007faf8c680090>
# ./spec/support/macros.rb:4:in `login_user'
# ./spec/helpers/users_helper_spec.rb:29:in `block (3 levels) in <top (required)>'
而這個宏是這樣的:
def login_user
@user = Factory(:user)
visit new_user_session_path
# fill in sign in form
within("#main_container") do
fill_in "user[email]", with: @user.email
fill_in "user[password]", with: @user.password
click_button "Sign in"
end
end
我需要:
require 'spec_helper'
在我的測試中,除了該方法以外的所有內容仍然不可用。