假设这个红宝石代码:
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 设置期望值?(或任何其他模拟框架),以便它测试任何用户实例的保存方法永远不会被调用?
(最好不要存根/模拟 find_by_email 方法,因为将来如何获取用户的实现可能会改变)
干杯