user' do UserMailer.stub(:welcome, nil) do LoginLogger.stub(:log, nil) do AnalyticsEvent.stub(:track, nil) do # ネストが深くなる地獄 assert_difference 'User.count', 1 do register_user(email: '[email protected]', password: 'password') end end end end end end 12/63
if balance - amount < 0 # do something end def transfer_to(other_account, amount) raise "残高不足です" if balance - amount < 0 # do something end def monthly_fee!(fee: 500) raise "残高不足です" if balance - fee < 0 # do something end end 24/63
@order = order @user = user end def execute ActiveRecord::Base.transaction do # 注文を完了状態にする @order.complete! # ポイントを付与する Point.create!(user: @user, amount: @order.amount * 0.01) end end end 40/63
initialize(order:, user:) @order = order @user = user end def execute ActiveRecord::Base.transaction do # 注文を完了状態にする @order.complete! # ポイントを付与する Point.create!(user: @user, amount: @order.amount * 0.01) end # メール送信 OrderMailer.perform_later(@user, @order) end end 45/63