こんにちは、Ruby on Rails の初心者です。
現在、rspec と FactoryGirl を使用してレール上でコントローラーをテストする際に問題が発生しています。アクション「show」に対応するアクティブレコードをテストしようとしていますが、通過または受信しませんでした。これを修正するためにできることはありますか? ありがとうございました
私が得たエラーは次のとおりです。
*Failure/Error: Employment::LevelAccess.should_receive(:find).with(@level_access.id.to_s).and_return(@level_access)
(<Employment::LevelAccess(id: integer, employment_id: integer, accessiblity_id: integer, actions: string, user_id: integer, created_at: datetime, updated_at: datetime) (class)>).find("1")
expected: 1 time
received: 0 times*
これが私のコードです
level_access_controller.erb :
context 'require instance' do
before do
@level_access = FactoryGirl.create(:level_access_2, employment_id: @employment.id)
end
describe 'Get id to Show' do
it "should find the correct value to show" do
Employment::LevelAccess.should_receive(:find).with(@level_access.id.to_s).and_return(@level_access)
get :show, :employment_id => @employment.id, :id => @level_access.id
end
end
describe 'Get show' do
before do
get :show , :employment_id => @employment.id, :id => @level_access.id
end
it "should render a show page" do
expect(response).to render_template("show")
end
it "should not redirect to any page" do
response.should_not redirect_to("hahahha")
end
end
end
参考までに、私はすでに雇用のインスタンスも作成しています。
Factory/level_access.erb :
FactoryGirl.define do
factory :level_access, class: Employment::LevelAccess do
employment_id {FactoryGirl.create(:employment).id}
actions 'create,update,new,destroy,show'
end
factory :level_access_2, class: Employment::LevelAccess do
actions 'show'
end
終わり