Bir İleti denetleyicim var ve bazı kimlik doğrulamasını hızlı ve kolay bir şekilde eklemek için Devise'yi yeni yükledim. Devise'i kurmadan önce, Mesajlar denetleyicimin 'yeni' eylemi için bazı testler yapmıştım. benim spec_helper.rb dosyasınaRspec, Devise, Fabrika kız - Fabrika kullanıcısı Rspec kontrol cihazı testi ile nasıl oturum açılır?
config.include Devise::TestHelpers, :type => :controller
satırı eklendi kadar hazırlamak kurduktan sonra, benim testler başarısız bulundu.
Ben de PostsController çizgiyi
before_filter :authenticate_user!, :except => [:show, :index]
var. Benim testleri çalıştırdığınızda
Şimdi, hepsi bu 2 hariç geçmesi: Ben de Fabrika kızı kullanıyorum
it "should be successful" do
get :new
response.should be_success
end
it "should have the right title" do
get :new
response.should have_selector('title', :content => @base_title + " | New post")
end
. Hata, parametre haricinde before_filter tarafından neden olur. Kullanıcıyı rspec'te bir fabrika kullanıcısı ile imzalayabilmem gerekir. Fabrika kullanıcısını Rspec denetleyici testinde nasıl imzalarım? Fabrika kullanıcısını nasıl tanımlarım?
Factory.define :user do |user|
user.name "Test User"
user.email "[email protected]"
user.password "password"
user.password_confirmation "password"
end
Ama sonra hata alıyorum:
benim factories.rb bu denedi Herhangi bir yardım çok takdir
NoMethodError:
undefined method `password_salt=' for #<User:0x00000103cac958>
. Teşekkürler.
ahhhh tamamen şimdi alıyorum ... Test DB geçirmek unuttum! @user = create (Fabrika (: Kullanıcı)) ActiveRecord :: RecordInvalid: Doğrulama başarısız: E-posta can' t boş, Şifre boş bırakılamaz ' – Jack
Bu hatayı hangi kod veriyor? (Hata mesajı, bir dosya adı ve satır numarası içermelidir.) –
Bu, Mesaj Denetleyicimde 'önce bir test var (: her biri) @user = oluştur! (Fabrika (: kullanıcı)) test_sign_in (@ user) end' – Jack