[英]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.