2011-02-09 31 views
17

RSpec ile çalışmaya başladım. Uygulama dilini ayarlamak ve buna göre yeniden yönlendirmek için HTTP_ACCEPT_HEADER veya istek 2 harfli alt alan adını kullanan yeni bir uygulama 3 uygulamasına sahibim. Cucumber kullanarak yönlendirme kodumu başarıyla test ediyorum.http üstbilgileri ayarlama RSpec 2.4/Rails 3

Şimdi denetleyici özelliklerimi yazmak istiyorum ve testimden önce istek alt alan adını ayarlamam gerekiyor.

header 'HTTP_HOST', 'es.mysite.local' 
visit '/' 

Ama bir spec dosyasında bunu çalıştığınızda

header 'HTTP_HOST', 'es.mysite.local' 
get 'index' 

bu hatayı alıyorum: Benim salatalık adımda

, belirtebilirim

Failure/Error: header 'HTTP_HOST', "es.mysite.local" 
LoadError: 
    no such file to load -- action_controller/integration 

Bunu nasıl çözeceğine dair bir ipucu var mı?

cevap

30

Bu deneyin:

request.env['HTTP_HOST'] = 'es.mysite.local' 
get 'index' 
+0

Çok teşekkür ederim! Bunu daha önce denedim, ancak şimdi başka bir kod örneğinin önce hata ayıklama noktasına ulaştığını fark ettim. – gdelfino

+0

Teşekkürler! Bugün Rails 3.0.7 ile çalışıyor ve her yerde alt alan adları ile tam URL'ler koymaktan kaçındı. –

2

önceki yanıt doğru gelir ve başlık, adı HTTP_ öneki tüm kapaklar, olması gereken genel olarak ve alt ile ayrılmıştır. "If-Modified-Since" Örneğin başlık ile ayarlanabilir:

request.env['HTTP_IF_MODIFIED_SINCE'] = Time.now.httpdate 
0

RSpec her istek için bir HTTP başlığı ayarlanması da mümkündür. Spec_helper öğesinin içine, RSpec.configure do |config| bloğunun içine ekleyin:

config.before(:each) do |x| 
    x.request.env['HTTP_ACCEPT_LANGUAGE'] = 'de-CH,de;q=0.8,en;q=0.6' 
end 
İlgili konular