这与我对黄瓜可选参数的an earlier question有关。如何在步骤中告知是否使用for email address..
位调用它?
(我知道在我的具体情况下,我可以检查email = default@domain.com
是否有args.count或更通用的方式来说明调用了一个步骤的参数?)
答案 0 :(得分:0)
我认为推断信息的唯一方法是检查参数的值。如果值为nil,则不会为其分配任何内容(即,未使用步骤定义的那部分)。
例如,如果您希望行为取决于是否使用了电子邮件地址部分:
When /^I check the favorite color count(?: for email address (.*))?$/ do |email|
if email.nil?
# Then the "for email address" part was *not* used
else
# Then the "for email address" part was used
end
email ||= "default@domain.com"
puts 'using ' + email
end
请注意,这基本上是行email ||= "default@domain.com"
正在做的事情。 ||=
基本上意味着如果一个尚不存在,则赋值。这与做:
When /^I check the favorite color count(?: for email address (.*))?$/ do |email|
if email.nil?
# Then the "for email address" part was *not* used
email = "default@domain.com"
else
# Then the "for email address" part was used
# email already has a value so leave it be
end
puts 'using ' + email
end