0

这与我之前关于黄瓜可选参数的问题有关。如何在该步骤中判断它是否被该for email address..位调用?

(我知道在我的具体情况下,我可以检查是否email = default@domain.com存在 args.count 或更通用的方法来告诉步骤调用了哪些参数?)

4

1 回答 1

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
于 2013-08-22T20:22:16.050 回答