Предположим, этот код рубина:
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 никогда не вызывается, когда дается неправильный адрес электронной почты. E.g.:
it "should not increment failed login count" do
User.expects(:save).never()
User.failed_login!("doesnotexist")
end
Этот тест в настоящее время проходит, но он также проходит, когда я предоставляю действительный адрес электронной почты.
Как мне настроить ожидание с помощью Мокко? (или любой другой фальшивый фреймворк) таким образом, чтобы он проверял метод сохранения любого пользовательского экземпляра, никогда не вызывается?
(желательно без заглушки / насмешек над методом find_by_email, поскольку реализация того, как получить пользователя, может измениться в будущем)
Приветствия