2012-06-16 4 views
0

Я бегу следующую особенность:Мои объекты FactoryGirl не сохраняются?

Scenario: viewing existing images 
    Given I am on the images page 
    And 4 images already exist 
    Then I should see a table containg those 4 images 
    And have the option to show images 
    And have the option to delete images 

с этими шагами, определенными:

Given /^I am on the images page$/ do 
    visit(images_path) 
end 

Given /^(\d+) images already exist$/ do |count| 
    count.to_i.times { 
    FactoryGirl.build(:image).save! 
    } 
end 

Then /^I should see a table containg those (\d+) images$/ do |count| 
    page.all('table#imagesTable tr').count.should == count 
end 

Заключительный шаг, подсчет строк в таблице, с треском проваливается. Он может найти только одну строку, которую я предполагаю, это строка заголовка. Это тесты для индексной страницы, которые я подтвердил вручную. Почему мои объекты, созданные FactoryGirl, не подхватили мой контроллер?

Индексный метод контроллера:

def index 
    @images = Image.all 
    end 
+0

Попробуйте поменять порядок «Я нахожусь на странице изображений» и «4 изображения уже существуют». Я считаю, что действие индекса вызывается перед созданием изображений, и поэтому новые изображения на самом деле не собираются. – SuperMaximo93

+0

@ SuperMaximo93 Приветствую вас, вы прибиваете его. Отправить ответ, если вы хотите получить кредит :) – willcodejavaforfood

+0

Прохладный :) Ответ отправлен – SuperMaximo93

ответ

3

Сменный порядок данности «Я на странице изображений» и «4 изображения уже существуют».

Действие индекса называется представлением, которое визуализируется перед созданием изображений, поэтому они не будут подняты.

Кроме того, я не знаю, если вы уже знаете это, но вместо

FactoryGirl.build(:image).save! 

вы можете сделать

FactoryGirl.create(:image) 
+1

Уже сделано. Вы узнаете так много всего при чтении документации :) – willcodejavaforfood

+0

И я потратил 3-4 часа на отладку теста, потому что использовал 'build', кроме' create'. Наверное, одного чтения документов недостаточно. –

Смежные вопросы