18
Resim yüklediğimde kullanıcının bir fotoğraf değerine sahip olduğunu test etmeye çalışıyorum. Tarayıcıda iyi çalışıyor ve testin temel işlevleri geçiyor, ancak eğer user.photo'nin sıfır olmadığını iddia etmeye çalışırsam başarısız olur. Burada test Bir dosyanın bir denetleyiciye nasıl yüklendiğini sınama?
describe 'POST #update' do
context 'when there is an image' do
it 'renders the crop template' do
login(user)
photo = File.open(File.join(Rails.root, '/spec/fixtures/images/bob-weir.jpg'))
post :update, user: { photo: photo }
expect(response).to render_template('crop')
user.reload
expect(user.photo.file).to_not be_nil
end
end
end
üretiyor var:
Failure/Error: expect(user.photo.file).to_not be_nil
expected: not nil
got: nil
ben user.photo yapmak testin sonunda bir hata ayıklayıcı koymak ve, ben alıyorum:
(byebug) user.photo
#<PhotoUploader:0x007fa447029480 @model=#<User id: 226, ..... photo: nil>,
@mounted_as=:photo, @storage=#<CarrierWave::Storage::File:0x007fa4468ddbb8
@uploader=#<PhotoUploader:0x007fa447029480 ...>>>
var mı uygulanıyor denetleyicinin veritabanında bir fotoğraf değerini gerçekten kaydettiğinden emin olmanın yolu nedir? Sadece modeldeki bir özniteliktir ve dosya adını bir dize olarak kaydeder. Bir fabrikada bu kullanmak istiyorsa
http://api.rubyonrails.org/classes/ActionDispatch/TestProcess.html#method-i-fixture_file_upload
post :update, user: { photo: fixture_file_upload('images/bob-weir.jpg', 'image/jpg') }
Ayrıca
, olurdu: