2012-07-12 11 views
9

Bir eylem kodu vardır: Bu tarayıcıda çalışıyorNasıl render test edilir: Rspec 2 dosyasında dosya => 'public/404.html'?

render :file => 'public/404.html' and return 

.

it "renders 404" do 
    get :new 
    response.should render_template('public/404.html') 
    end 

şu hatayla bu örnek sonuçlarını Koşu: Bunu test etmek için aşağıdaki RSpec örnek yazdım

Failure/Error: response.should render_template('public/404.html') 
    Expected block to return true value. 

Ben de bir hata response.should render_template(:file => 'public/404.html') ama bu da sonuç çalıştık.

Bunu nasıl test etmeliyim?

cevap

17

Sen kullanmalıdır: Bu yanıt bir göz başka herhangi sayfası

response.should render_template(:file => "#{Rails.root}/public/404.html") 
+6

Bu işe yaramıyor: render_template (: dosya => "sahte dosya") geçer. – therin

+0

Benim için çalışır RSpec 3.2, Raylar 4.2 – fny

5

404 sayfa göstermek istiyorsanız, durum kodunu ayarlamayı unutmayın. Bu, aynı zamanda, genel/404'ü doğrudan oluşturmak yerine, bunu yapmanın daha iyi yolları olmak üzere, test edeceğim şeydir: it { should respond_with :not_found }

. How to redirect to a 404 in Rails?

+0

Ya ve özellikle 404.html (veya 502.html) değil? Örneğin, bazı parametrelere bağlı olarak, farklı kullanıcılara farklı açılış sayfaları göstermek istiyorum. – Chandranshu

+0

Bunu yönlendiriciye koyar ve bunun için yönlendirme testleri yazar. – phoet

İlgili konular