Cucumber: Ruby でメソッドを完了するために使用される変数
概要
以下のメソッドで変数 var_name を使用するエレガントな方法はありますか。ステップの最初の文字列として使用される名前が var の最後に反映されるようにするためです。
Then('the {string} variable in the response should be {string}') do |var_name, value|
var = Connection.session.**"#{var_name}"**
raise "Expected #{var} to equal '#{value}', but was #{var}" unless var == value
end
BR、 カミロ
解決策
実行時のみがわかるセレクターを使用してメッセージを送信するには、Object#public_send メソッドを使用できます。 public_send を使用すると、メッセージの名前を引数として渡すだけで、任意のメッセージをオブジェクトに送信できます。
Connection.session.public_send(var_name)