scenario.test_steps
を反復する場合、各テストステップには、対応するCucumber::Core::Ast::Step
があります。これは、関連するAst::Step
がテストステップのsource
の最後の要素になりますなど、このようなステップ名とステップの特定の情報、データテーブルを、含まれています
test_step.source
#=> [
#=> #<Cucumber::Core::Ast::Feature "Feature: Something" (features/something.feature:1)>,
#=> #<Cucumber::Core::Ast::Scenario "Scenario: Only a test" (features/something.feature:3)>,
#=> #<Cucumber::Core::Ast::Step "Given : the fields" (features/something.feature:4)>
#=> ]
Ast::Step
マルチライン引数にアクセスするには、multiline_arg
をチェック。データテーブルが指定されている場合はAst::DataTable
が返されます。それ以外の場合はAst::EmptyMultilineArgument
が返されます。 data_table?
を呼び出して、返された値がデータテーブルかどうかを調べることができます。定義されている場合
例として、以下の各試験ステップ及び出力データテーブルを反復であろう:返信@Justinコため
Before do |scenario|
scenario.test_steps.each do |test_step|
multiline_arg = test_step.source.last.multiline_arg
puts multiline_arg.raw if multiline_arg.data_table?
end
end
ありがとう。私はコピー&ペーストしたとおり正確に貼り付けましたが、うまくいきませんでしたので、 'begin rescue'ブロックと_voilá_を使っていくつかの変更を行いました! –