运行依赖于其他方案的方案的最佳方法是什么?
scenario 'create a new category' do
index_page.open
index_page.click_new_category
modify_page.fill_form_with(category_params)
modify_page.submit
expect(index_page.flash).to have_css('.alert-success')
expect(index_page.entry(1)).to have_content(category_params[:name_de])
end
这个'创建一个新类别'必须在另一个场景之前完成'编辑类别'可以开始了:
scenario 'edit category' do
index_page.open
index_page.click_new_category
modify_page.fill_form_with(category_params)
modify_page.submit
index_page.open
index_page.click_edit_category
modify_page.fill_form_with(category_params)
modify_page.submit
expect(index_page).to have_css('.alert-success')
end
是否有快捷方式可以消除编辑类别中的前4行'场景?
答案 0 :(得分:1)
您的测试不应该共享状态。这会使他们彼此依赖,你不想要你的编辑类别"测试失败,因为你的"创建新类别"功能被破坏了。
正确的方法是在"编辑类别"的设置中创建一个类别对象。测试
let(:category) { create(:category) }
(这是FactoryGirl语法,是一种非常流行的数据配置工具。
scenario 'edit category' do
visit edit_category_path(category)
page.fill_form_with(category_params)
page.submit
expect(page).to have_css('.alert-success')
end
我不太确定你是如何使用这些填充函数的,但这基本上就是你应该做的! ; - )
干杯!