Идея в том, что вы должны использовать instance_double
, но я думаю, что важно понять, почему Рубокоп так говорит.
Основное различие между doubles
и instance_doubles
заключается в том, что мы пытаемся объявитьметод, который НЕ реализуется классом проверяемого экземпляра, он вызовет исключение. Если мы решим использовать фиктивные объекты в наших тестах, instance_doubles дает нам немного больше уверенности в наших тестах, чем если бы мы использовали шпионы или обычные удвоения.
Так что если в будущем кто-то переименует или удалит этот метод,если вы используете double, вы, вероятно, никогда не узнаете об этом, и ваш пропуск пройдет, но если вы используете instance_doubles, вы будете уведомлены.
Очевидно, что между ними есть компромисс между производительностью, но в 99% случаев для менялучше использовать instance_doubles