2010-10-27 14 views
7

este código:¿Cómo reutilizar la definición de paso de Pepino con una tabla para el último parámetro?

Then %{I should see the following data in the "Feeds" data grid: 
                | Name | 
                | #{name} |} 

Y éste:

Then "I should see the following data in the \"Feeds\" data grid: 
| Name | 
| #{name} |" 

Y esto:

Then "I should see the following data in the \"Feeds\" data grid:\n| Name |\n| #{name} |" 

E incluso esto:

Then <<EOS 
I should see the following data in the "Feeds" data grid: 
| Name | 
| #{name} | 
EOS 

Me da:

Your block takes 2 arguments, but the Regexp matched 1 argument. 
(Cucumber::ArityMismatchError) 
    tests/endtoend/step_definitions/instruments_editor_steps.rb:29:in `/^the editor shows "([^"]*)" in the feeds list$/' 
    melomel-0.6.0/lib/melomel/cucumber/data_grid_steps.rb:59:in `/^I should see the following data in the "([^"]*)" data grid:$/' 
    tests/endtoend/instruments_editor.feature:11:in `And the editor shows "myFeed" in the feeds list 

Ésta:

Then "I should see the following data in the \"Feeds\" data grid: | Name || #{name} |" 

Y éste:

Then "I should see the following data in the \"Feeds\" data grid:| Name || #{name} |" 

Da:

Undefined step: "I should see the following data in the "Feeds" data grid:| Name || myFeed |" (Cucumber::Undefined) 
    ./tests/endtoend/step_definitions/instruments_editor_steps.rb:31:in `/^the editor shows "([^"]*)" in the feeds list$/' 
    tests/endtoend/instruments_editor.feature:11:in `And the editor shows "myFeed" in the feeds list' 

Respuesta

6

he encontrado la respuesta a mí mismo:

steps %Q{ 
Then I should see the following data in the "Feeds" data grid: 
               | Name | 
               | #{name} | 
} 
+0

no pude conseguir este trabajo, pero @kwon respuesta funciona muy bien. .. – nodrog

3

NOTA SOBRE LA ANTERIOR: Puede parecer obvio, pero la nueva línea después de la primera '{' es taaaaaaaaaaaaaaaan importante

Otra forma:

Given /^My basic step:$/ do |table| 
    #do table operation 
end 


Given /^My referring step:$/ do |table| 
    table.hashes.each do |row|  
    row_as_table = %{ 
     |prop1|prop2| 
     |#{row[:prop1]}|#{row[:prop2]}| 
    } 
    Given %{My basic step:}, Cucumber::Ast::Table.parse(row_as_table, "", 0) 
    end 
end 
3

También puede escribir de esta manera, el uso de #table

Then /^some other step$/ do 
    Then %{I should see the following data in the "Feeds" data grid:}, table(%{ 
    | Name | 
    | #{name} | 
    }) 
end 
0

Considere el uso de

Given /^events with:-$/ do |table| 
    Given %{I am on the event admin page} 
    table.hashes.each do |row| 
    Given %{an event with:-}, Cucumber::Ast::Table.new([row]).transpose 
    end 
end 

Me parece mucho más elegante que construir la mesa a mano.

eventos con: - crear una tabla como ésta

| Form | Element | Label | 
| foo | bar  | baz | 

y un evento con: - crear una tabla como

| Form | foo | 
| Element | bar | 
| Label | baz | 
Cuestiones relacionadas