次の 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
このテストは現在合格していますが、有効な電子メール アドレスを提供した場合にも合格します。
Mocha を使用して期待値を設定するにはどうすればよいですか? (または他のモックフレームワーク) User インスタンスの save メソッドが呼び出されないようにテストしますか?
(ユーザーを取得する方法の実装は将来変更される可能性があるため、find_by_email メソッドをスタブ化/モック化しないことが望ましい)
乾杯