Я хочу заглушить только конкретную модель, но не только конкретный объект и не каждый экземпляр
например. Данный класс «Person» с атрибутами «name» (строка) и «cool» (логическое значение). У нас есть две модели:
person_bill:
name: bill
cool: false
person_steve:
name: steve
cool: false
Теперь я хочу заглушить просто Стива, который работает хорошо:
p1 = people(:person_steve)
p1.stubs(:cool? => true)
assert p1.cool? #works
Но если я снова загружаю модель из БД, это не так:
p1 = people(:person_steve)
p1.stubs(:cool? => true)
p1 = Person.find_by_name p1.name
assert p1.cool? #fails!!
Это работает, но влияет и на Билл , что не должно:
Person.any_instance.stubs(:cool? => true)
assert people(:person_bill).cool? #doesn't fails although it should
Так как я могу просто заглушить Стива, но в любом случае? Существует ли условный экземпляр any_instance, например
Person.any_instance { |p| p.name == 'Steve' }.stubs(:cool? => true)
Заранее спасибо!