在步骤中检查它被调用的参数

时间:2013-08-22 18:37:35

标签: cucumber

这与我对黄瓜可选参数的an earlier question有关。如何在步骤中告知是否使用for email address..位调用它?

(我知道在我的具体情况下,我可以检查email = default@domain.com是否有args.count或更通用的方式来说明调用了一个步骤的参数?)

1 个答案:

答案 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