Можно ли использовать RSpec .should(change(...)).by(...)
с номерами с плавающей точкой и установить сравнение точности, как это:Rspec «должен изменить» с плавающей точкой
lambda { ...}.should change(unit, :price).by(12.151, 10e-5)
Спасибо,
Можно ли использовать RSpec .should(change(...)).by(...)
с номерами с плавающей точкой и установить сравнение точности, как это:Rspec «должен изменить» с плавающей точкой
lambda { ...}.should change(unit, :price).by(12.151, 10e-5)
Спасибо,
Мы всегда можем написать пользовательский соединитель.
Или используйте комбинацию by_at_most и by_at_least matchers с точностью, как это:
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)
Да, это может решить проблему, если мы используем by_at_most и by_at_least вместе. Не идеальное решение, но работает. –