Можно ли использовать RSpec .should(change(...)).by(...) с числами с плавающей запятой и установить точность сравнения следующим образом:
.should(change(...)).by(...)
lambda { ...}.should change(unit, :price).by(12.151, 10e-5)
Спасибо
Мы всегда можем написать собственный сопоставитель.
Или используйте комбинацию совпадений by_at_most и by_at_least с такой точностью:
lambda { ...}.should change(unit, :price).by_at_most(12.15 + 10e-5).by_at_least(12.15 - 10e-5)
Это кажется невозможным с текущим состоянием кода. Вот источник Matchers :: Change, где вы можете его увидеть: http://github.com/dchelimsky/rspec/blob/f9ef5bff62c10d33414c9ab2f3ac87e1256e07b8/lib/spec/matchers/change.rb
Было бы приемлемо соответствовать верхней границе? Например:
lambda { ...}.should change(unit, :price).by_at_most(12.15)