在我的用户模型中,所有用户都user
在before_create
回调中分配了角色。所以我在创建管理员用户以在某些测试中使用时遇到了很多麻烦。这是我尝试过的,但不起作用:
require 'spec_helper'
describe "Exercises" do
describe "GET /Exercises" do
it "gives the expected status code." do
sign_in_as_valid_user
@user.role = 'admin'
get exercises_path
response.status.should be(200)
end
为了完整起见,这里是调用的方法:
module ValidUserRequestHelper
def sign_in_as_valid_user
FactoryGirl.create :program
@user ||= FactoryGirl.create :user
post_via_redirect user_session_path, 'user[email]' => @user.email, 'user[password]' => @user.password
end
end
和工厂:
FactoryGirl.define do
sequence :email do |n|
"test#{n}@vitogo.com"
end
factory :user do
email
password '12345678'
password_confirmation '12345678'
goal_id 1
experience_level_id 1
gender 'Female'
end
end
我只是想在重要的特定测试中改变角色。
任何想法如何做到这一点?这让我快疯了。提前致谢!