RSpec を使用してメッセージのメソッドをテストするにはどうすればよいですか? 基本的に、私のメソッドは 2 つのパラメーターを受け入れます。適切な詳細が提供されていれば、成功メッセージが表示されます。私はこれを試しました:
DRINKS_MACHINE = {
'Coca Cola' => 2.99,
'Fanta' => 3.27,
'Beer' => 5.99
}
class Drink
def check_money(drink_selection, money_amount_paid)
amount_paid = money_amount_paid.to_f
if amount_paid <= 0
raise ArgumentError, 'Insert Money'
end
if not DRINKS_MACHINE.has_key?(drink_selection)
raise ArgumentError, "Invalid selection: #{drink_selection}"
end
cost = DRINKS_MACHINE[drink_selection]
if amount_paid < cost
remainder = amount_paid - cost
raise ArgumentError, "Not enough coins. Insert #{remainder} more!"
elsif
puts "Purchase Complete: #{drink_selection}"
end
end
end
有効な選択と十分な金額がメソッドに渡されると、正しいメッセージが返されることをテストしたいと思います。この場合、メッセージには、メソッドに渡された文字列変数も含まれます。私は次のことを試しました:expect @method.check_money("Coca Cola", "5.00").raise ("Purchase Complete : Coca Cola")
. も試しました@method.check_money("Coca Cola", "4.59").should eq ("Purchase Complete: Coca Cola")