私のユーザー モデルで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
重要な特定のテストで役割を変更しようとしているだけです。
これを行う方法はありますか?それは私を夢中にさせてきました。前もって感謝します!