【发布时间】:2015-04-27 11:02:58
【问题描述】:
让我们来:
When /^(?:|I )fill in the following:$/ do |fields|
fields.rows_hash.each do |name, value|
When %{I fill in "#{name}" with "#{value}"}
end
end
根据我的基本 Ruby 知识,我认为 When 是一个采用正则表达式和块的方法调用。
但是,我也在想,这是一个定义,而不是一个方法调用,那么它是如何实现的呢? When 怎么定义?
【问题讨论】:
-
“这是一个定义,而不是一个方法调用”是什么意思?
-
我的意思是我认为
When ... do ... end在某种程度上是一个定义,因为在第3行中,我们可以使用字符串来调用它。 -
你把我搞糊涂了 :) 在第 3 行调用方法有什么问题?看看他们是如何实现
World的。When将在 Gherkin 实现中以相同的方式定义。 -
When 是一个接受一些参数的方法,也可以选择一个块。请记住,在 Ruby 中,方法参数可以是任何类型,块可以是可选的。
标签: ruby cucumber dsl internal