Вот несколько методов, связанных с «сопоставителем изменений» в RSpec:
-
change— это основной метод, используемый для определения средства сопоставления изменений в RSpec. Ему требуется объект и символ, представляющий метод или атрибут, за изменениями которого необходимо наблюдать.
Пример:expect { object.save }.tochange(object, :attribute) -
by— этот метод используется вместе с сопоставителемchangeдля указания ожидаемой суммы изменения. Он принимает числовое значение или блок, который возвращает числовое значение.
Пример:expect { object.update }.tochange(object, :attribute).by(3) -
from– этот метод используется с сопоставителемchangeдля указания ожидаемого начального значения перед изменением.
Пример:expect { object.delete }.to изменить(object, :attribute).from("old_value") -
to– этот метод используется с сопоставителемchangeдля указания ожидаемого конечного значения после изменения.
Пример:expect { object.process }.to изменить(object, :attribute).to("new_value") -
from_value– этот метод используется для указания ожидаемого начального значения перед изменением, аналогичноfrom, но позволяет указать значение напрямую.
Пример:expect { object.modify }.tochange(object, :attribute).from_value(nil) -
to_value– этот метод используется для указания ожидаемого конечного значения после изменения, аналогичноto, но позволяет указать значение напрямую.
Пример:expect { object.calculate }.tochange(object, :attribute).to_value(42)