我是Cucumber / Capybara的新手,我想知道如何使用Cucumber / Capybara从txt / xls文件导入数据
例如,我需要使用下一个场景一个接一个地上传几个文件:
特征
Scenario: Upload
When I Choose A name "name"
When I Choose "/home/path"
Then I Click Upload
step_definitions
When(/^I Choose A name "([^"]*)"$/) do |title|
fill_in('video_title', :with => title)
fill_in('video_description', :with => title)
end
When(/^I Choose "([^"]*)"$/) do |file|
find(:xpath, '//*[@id="file"]', :visible => false).set(file)
end
Then(/^I Click Upload$/) do
click_button('Upload')
end
所以,如果我可以添加步骤定义从txt或xls导入,那将更容易,然后为每个文件重复场景
答案 0 :(得分:1)
我不确定我理解你的问题。为了澄清,你是说你想为几个文件做同样的基本事情吗?如果是这样,我会这样做:
特点:
Scenario Outline: Upload
When I upload a video named "<name>" from path "<path>"
Examples:
| name | path |
| foo | /path/1 |
| bar | /path/2 |
| baz | /path/3 |
步骤:
When(/^I choose a name "(.*)"$/) do |name|
fill_in('video_title', :with => name)
fill_in('video_description', :with => name)
end
When(/^I choose "([^"]*"$/) do |file|
find(:xpath, '//*[@id="file"]', :visible => false).set(file)
end
When(/^I click "([^"]*"$/ do |button|
click_button(button)
end
When(/^I upload a video named "[^"]*" from path "[^"]*"$/ do |title, path|
step 'I choose a name "' + title + '"'
step 'I choose "' + path + '"'
step 'I click "Upload"'
end
这假设您正在使用其他方案中的其他步骤。如果你不是,那么只定义一步“我从路径”“上传名为”“的视频会更有意义。
如果这不能解答您的问题,请告诉我您的需求与否,我会看看是否可以提供帮助。