请帮忙解决这个问题。
用户工厂与助手绑定:
module Helpers
def login_user
@user = FactoryGirl.create(:user, :user_status)
visit new_user_session_path
fill_in "user_email", :with => @user.email
fill_in "user_password", :with => "qwerty"
click_button "commitSignIn" #OK sign in
end
def login_manager
@user = FactoryGirl.create(:user, :manager_status)
visit new_user_session_path
fill_in "user_email", :with => @user.email
fill_in "user_password", :with => "qwerty"
click_button "commitSignIn" #OK sign in
end
def login_admin
@user = FactoryGirl.create(:user, :admin_status)
visit new_user_session_path
fill_in "user_email", :with => @user.email
fill_in "user_password", :with => "qwerty"
click_button "commitSignIn" #OK sign in
end
end但这个代码不是干的。我需要减少它。我的解决方案:
module Helpers
after(:each) do
visit new_user_session_path
fill_in "user_email", :with => @user.email
fill_in "user_password", :with => "qwerty"
click_button "commitSignIn" #OK sign in
end
def login_user
@user = FactoryGirl.create(:user, :user_status)
end
def login_manager
@user = FactoryGirl.create(:user, :manager_status)
end
def login_admin
@user = FactoryGirl.create(:user, :admin_status)
end
end但我的解决方案行不通。控制台显示如下:
kalinin@kalinin ~/rails/phs $ rspec spec/helpers/session_helper_spec.rb /home/kalinin/rails/phs/spec/helpers/application_helper_spec.rb:2:in 在“for Helpers:模块( /home/kalinin/rails/phs/spec/helpers/application_helper_spec.rb:1:in‘)”之后的
<module:Helpers>': undefined method
发布于 2015-09-05 09:54:24
after :each是RSpec允许的规范示例,而不是任意的方法(因此也不适用于助手方法)。(Rails控制器在around_action中也有类似的功能,但这也仅限于控制器中的操作方法。)
怎么样
module Helpers
def login_user(role=:user)
@user = FactoryGirl.create(:user, :"#{role}_status")
visit new_user_session_path
fill_in "user_email", :with => @user.email
fill_in "user_password", :with => "qwerty"
click_button "commitSignIn" #OK sign in
end
def login_manager
login_user(:manager)
end
def login_admin
login_user(:admin)
end
end(未经测试,因此可能需要一些摆弄。)
https://stackoverflow.com/questions/32411566
复制相似问题