Ist es möglich, RSpec .should(change(...)).by(...)
mit Float-Zahlen zu verwenden und die Präzision wie folgt vergleichen:Rspec ‚sollte sich ändern‘ mit Floating-Point-
lambda { ...}.should change(unit, :price).by(12.151, 10e-5)
Danke,
Ist es möglich, RSpec .should(change(...)).by(...)
mit Float-Zahlen zu verwenden und die Präzision wie folgt vergleichen:Rspec ‚sollte sich ändern‘ mit Floating-Point-
lambda { ...}.should change(unit, :price).by(12.151, 10e-5)
Danke,
Wir können immer den benutzerdefinierten Matcher schreiben.
oder die Kombination von by_at_most verwenden und by_at_least Matcher mit der Präzision wie folgt aus:
lambda { ...}.should change(unit, :price).by_at_most(12.15 + 10e-5).by_at_least(12.15 - 10e-5)
Es ist nicht möglich zu sein scheint mit der aktuelle Status des Codes. Hier ist die Quelle der Matchers :: Ändern, wo Sie es sehen können: http://github.com/dchelimsky/rspec/blob/f9ef5bff62c10d33414c9ab2f3ac87e1256e07b8/lib/spec/matchers/change.rb
Wäre es akzeptabel, eine obere Grenze zu entsprechen? Zum Beispiel:
lambda { ...}.should change(unit, :price).by_at_most(12.15)
Ja, das könnte das Problem lösen, wenn wir by_at_most und by_at_least zusammen verwenden. Keine perfekte Lösung, aber funktioniert. –