Rspec «должен измениться» с плавающей точкой - PullRequest
0 голосов
/ 22 августа 2009

Можно ли использовать RSpec .should(change(...)).by(...) с числами с плавающей запятой и установить точность сравнения следующим образом:

lambda { ...}.should change(unit, :price).by(12.151, 10e-5)

Спасибо

Ответы [ 2 ]

1 голос
/ 22 ноября 2009

Мы всегда можем написать собственный сопоставитель.

Или используйте комбинацию совпадений 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)
0 голосов
/ 23 августа 2009

Это кажется невозможным с текущим состоянием кода. Вот источник Matchers :: Change, где вы можете его увидеть: http://github.com/dchelimsky/rspec/blob/f9ef5bff62c10d33414c9ab2f3ac87e1256e07b8/lib/spec/matchers/change.rb

Было бы приемлемо соответствовать верхней границе? Например:

lambda { ...}.should change(unit, :price).by_at_most(12.15)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...