2011-03-24 17 views
8

Kullanıcının sınava girmesine izin verecek bir uygulama oluşturuyorum. Sınav nesnesi has_many soruları ve kullanıcının sınava iki bölüm halinde girmesini istiyorum. kullanıcı sorunları/sınav GET YaniRspec ile bir kaynakların üye rotalarını test etme rspec

resources :exam do 
    member do 
    get 'get_part1' 
    put 'put_part1' 
    get 'get_part2' 
    put 'put_part2' 
    end 
end 

, /: Bu iş akışını uygulamak için, ben config/routes.rb aşağıdaki yolları oluşturduk kimliği/get_part1 onlar soruların ilk seti gösterilmektedir vs… Bu çalışmanın hepsine sahibim ve şimdi bunun için testler yazmaya çalışıyorum - bunun geriye doğru olduğunu biliyorum ama karmaşık formları ve şeyleri anlamak bana biraz zaman aldı. Oturum açmış bir kullanıcı değilseniz, sınav denetleyicisine erişemeyeceğinizi test etmek istiyorum. Bu yeni için doğru ve yaratıyor ama iç içe geçmiş üyeleri nasıl test edeceğimi bulmakta zorlanıyorum. İşte ben bugüne kadar çalıştığım buydu:

before(:each) do 
    @exam = Exam.create 
end              

it "should deny access to 'get_part1'" do 
    get get_part1_exam_path(@exam)        
    response.should redirect_to(signin_path) 
end 

Ancak bu test aşağıdaki hata nedeniyle başarısız:

Failure/Error: get get_part1_exam_path(@exam) 
ActionController::RoutingError: 
    No route matches {:controller=>"exams", :action=>"/exams/1/get_part1"} 

Herhangi bir yardım büyük takdir. Teşekkürler! Büyü gibi

get :get_part1, :id => @exam (or @exam.id) 

cevap

13

biri olduğunu deneyin. Teşekkürler Markus!
+0

Çalışır: – spinlock

+0

Rica ederim :) –