将参数传递给红宝石葫芦方法的更好方法

时间:2018-10-20 16:18:39

标签: ruby if-statement case calabash

我有以下红宝石葫芦步骤:

translator = str.maketrans('', '', string.punctuation)
no_punctuation = lowers.translate(translator)

即使看起来很清楚,但我很确定我可以从设计角度做得更好。特别是我不喜欢的是带有true / false分配的login_type case方法。 怎么做更好呢?谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用三元运算符分配:

When(/^I enter (phone number|email)$/) do |method|
  unless  ['phone number', 'email'].include?(method)
    raise "#{method} is not supported"
  else
    login_type = method == 'phone number' ? true : false
  end

  verify_login_page(type: login_type)

  aggregator = login_type ? Aggregator::PHONE : Aggregator::EMAIL

  get_and_enter_code(aggregator)
end

自从您引发异常Aggregator::ALL以来,就永远不会发生这种情况。