簡體   English   中英

將參數傳遞給紅寶石葫蘆方法的更好方法

[英]Better way to pass parameters to ruby calabash method

我有以下紅寶石瓢步驟:

When(/^I enter (phone number|email)$/) do |method|
login_type = case method
        when 'phone number'
          true
        when 'email'
          false
        else
          raise("#{method} is not supported")
      end
verify_login_page(type: login_type)
aggregator = case method
             when 'phone number'
               Aggregator::PHONE
             when 'email'
               Aggregator::EMAIL
             else
               Aggregator::ALL
           end
get_and_enter_code(aggregator)
end

即使看起來很清楚,但我很確定我可以從設計角度做得更好。 特別是我不喜歡的是帶有true / false分配的login_type case方法。 怎么做更好呢? 謝謝

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

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情況永遠不會發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM