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
end
There 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