DEV Community

Vasily Polovnyov
Vasily Polovnyov

Posted on • Originally published at vasily.polovnyov.ru on

Когда использовать double, а не instance_double?

Напомню разницу: instance_double может уронить тест, если застабленные методы отсутствуют в указанном классе, double на все пофиг.

По моему опыту double нужен в двух случаях:

  1. Вместо объекта, который пока не существует в системе. Нет класса, значит, instance_double не на что опереться.

  2. Вместо чего-то незначительного со стабильным АПИ. Например, для писем:

allow(DeadlineMailer)
  .to receive(:last_deadline_warning)
  .and_return(double(:email, deliver_later: true))
Enter fullscreen mode Exit fullscreen mode

Top comments (0)