Anyway. The question is, how to test the defined precision? In the following example I expect a precision of 2 digits. For understanding reasons I show the code first followed by the test. The class is simple circle stuff with a method, which returns the calculated area:
class Circle attr_accessor :radius def initialize radius=1 @radius = radius end def area radius * radius * Math::PI end endThere are the 2 accessors for the instance variable "radius" and the constructor "Circle#initialize" with a default parameter for a unit circle. And at least there is the algorithm for calculating the area of a circle in "Circle#area", which returns the most possible precise result. The RSpec test is:
# circle_spec.rb require './circle.rb' describe Circle do describe "#area" do it "should calculate the area of a circle" do radius = 2 circle = Circle.new radius circle.area.should be_within(0.01).of(12.56) end end end"Matchers#be_within" ensures that the precision should be 2 digits, nevertheless the method returns a more precise number.
Supported by Ruby 1.9.3
Keine Kommentare:
Kommentar veröffentlichen