7

Aşağıdakiler bir hata oluşturur: "tanımlanmamış yerel değişken veya yöntem" params '"Parazit karmasını Rails testinde nasıl test ediyorsunuz?

assert_equal params[:recipient_id], users(:one).id

Parazitleri nasıl test edersiniz?

Ayrıca, parazit olduğunda assert_redirect'i nasıl test edersiniz? Paramler URL'ye eklenir, bu yüzden model_path veya benzeri testler başarısız olur.

Rails 3. yerleşik test sınıfıyla çalışma

+0

@ B Yedi: Neden parazit karmasında mevcut olanı test etmek istiyorsunuz? Biliyorum, bu sinir bozucu bir soru, ama bana böyle bir şeyi test etmek isteyecek tuhaf görünüyor. Daha önemlisi, denetleyicinin doğru nesneyi almasıdır. – Samo

+0

@Samo Bu geçerli bir neden olup olmadığından emin değilim, ancak bir zaman alanı ve bir tarih alanını birleştiren bir denetleyici eylemim var (bunları ayrı alanlar olarak aldım) ve hata durumunda, bunu sağlamak alanlar, kullanıcılara orijinal olarak gönderildikleri şekilde görünecek şekilde düzgün bir şekilde işlenmemişti. Bunun hakkındaki düşüncelerin ne olurdu? –

cevap

7

http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers test sınıfında inşa Çalışma

bu bilgilerin bazıları veriyor. Eğer @request.params[:recipient_id] olarak bakın böylece bu durumda

, @request veya @response nesnesine bağlı olan parametreler, (bu test ne HTTP yöntemi bağlı olarak).

Yönlendirme için: assert_redirected_to post_path(assigns(:post)), belirli bir model için uygun yola yönlendirildiğinizi ileri sürecektir. Atama yöntemi, denetleyicinin içine koyduğunuz örnek değişkenlere sahip olmalıdır.