Всего Rspec нуб здесь. Пишу мои первые тесты сегодня вечером.
У меня есть модель под названием Image. С помощью скрепки я прикрепляю файл с именем photo. Стандартные вещи. Я запустил генератор скрепок, и все отлично работает в производственных и тестовых режимах.
Теперь у меня есть файл спецификаций с именем image.rb, и он выглядит так (он был создан генератором nifty_scaffold Райана):
require File.dirname(__FILE__) + '/../spec_helper'
describe Image do
it "should be valid" do
Image.new.should be_valid
end
end
Этот тест не пройден, и я понимаю, что это из-за проверок моей модели (то есть validates_attachment_presence)
Я получаю ошибку:
Errors: Photo file name must be set., Photo file size file size must be between 0 and 1048576 bytes., Photo content type is not included in the list
Так как мне сказать rspec загрузить фотографию, когда она запускает мой тест?
Я предполагаю, что это имеет какое-то отношение к светильникам ... может быть, и нет. Я пытался поиграть с ними, но безуспешно. Для записи, я создал папку с именем images в папке своих приборов и два файла, которые я хочу использовать в своих тестах, называются rails.png и grid.png)
Я пытался сделать следующее:
it "should be valid" do
image = Image.new :photo => fixture_file_upload('images/rails.png', 'image/png').should be_valid
# I've also tried adding stuff like this
#image.stub!(:has_attached_file).with(:photo).and_return( true )
#image.stub!(:save_attached_files).and_return true
#image.save.should be_true
end
Но rspec жалуется на то, что «fixture_file_upload» не распознается ... Я планирую получить эту книгу Rspec. И я бродил по сети для ответа, но, похоже, ничего не могу найти. Моя тестовая база данных заполняется некоторыми данными, когда я удаляю проверки из моей модели, поэтому я знаю, что некоторые из них работают нормально.
Заранее спасибо,
EDIT:
images.yml выглядит так:
one:
name: MyString
description: MyString
two:
name: MyString
description: MyString