は、このRubyコードを想定しますモカ:インスタンスメソッドの期待値をどのように設定しますか?
class User
def self.failed_login!(email)
user = User.find_by_email(email)
if user
user.failed_login_count = user.failed_login_count + 1
user.save
end
end
end
私は無効な電子メールが与えられたときuser.save呼び出されることはありませんされていることをテストするテストを書きたいです。例えば:
it "should not increment failed login count" do
User.expects(:save).never()
User.failed_login!("doesnotexist")
end
このテストでは、現在渡しますが、私は有効なメールアドレスを提供するとき、それはまた渡します。
モカを使用して期待値を設定するにはどうすればよいですか?任意のUserインスタンスのsaveメソッドをテストするような(または他の疑似フレームワーク)呼び出しは一度も呼び出されませんか?
(好ましくは、ユーザーを取得する方法の実装として、find_by_emailメソッドをモック/スタブせず、将来的に変更される可能性があります)、このわたしつまずいたかもしれない他の人のために
乾杯
RSpecモックでこれを実行することは、_all_続くインスタンスに影響しますので、注意してください。モカは予想どおり仕様に従ってモックを引き下げる。 – avocade