У меня есть класс с именем User с определением.(Упрощенная версия для понимания и хранения всего кода в одном месте)
class User
string type
bool create_copy
end
after_save copy_cat
after_destroy destroy_copy_cat
def copy_cat
if create_copy?
User.create!(type: type, create_copy: false)
end
end
def destroy_copy_cat
if create_copy?
User.where(type: self.type).destroy_all
end
end
#RSPEC
#Test case 1
user = User.new(type: :admin, create_copy: true)
expect(user).to receive(copy_cat) . #Works fine
user.save!
#Test case 2
cc_user = User.where(type: :admin, create_copy: false).first
expect(user).to receive(destroy_copy_cat) #Works fine
expect(cc_user).to receive(destroy_copy_cat) #Doesn't work
user.destroy!
Есть ли способ обнаружить вызов функции для объекта cc_user в rspec?
Я проверил, что функция destroy_copy_cat
вызывается после того, какс помощью оператора put.
Я попытался использовать test double и spy, и проверка завершилась неудачей.