我正在运行以下功能:
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 :(得分:3)
交换“我在图像页面上”的顺序和“已存在的4张图像”。
正在调用索引操作视图在创建图像之前呈现,因此它们不会被拾取。
另外,我不知道你是否已经知道这一点,而不是
FactoryGirl.build(:image).save!
你可以做到
FactoryGirl.create(:image)