如何在比较eq()的比较中阻止Rspec舍入fixNum?
红宝石:
def power(base, exponent)
base**exponent
end
Rspec的:
Failure/Error: expect(power(5,-5)).to eq(1/3125)
expected: 0
got: (1/3125)
但通过
expect(power(5,-5)).to eq(0.00032)
答案 0 :(得分:2)
这不是RSpec舍入任何东西,只是Ruby假设因为你将两个Fixnum
分开,那么你想要Fixnum
回来。
如果您潜水的任何数字是Float
或Rational
,您的部门会产生相应的课程,并且会通过您的平等检查。
> power(5, -5) == (1/3125)
=> false
> power(5, -5).class
=> Rational
> (1/3125).class
=> Fixnum
> 0.00032.class
=> Float
> (1/3125)
=> 0
> (1.0/3125)
=> 0.00032
> power(5, -5) == (1.0/3125)
=> true