放心usage documentation各地拥有的例子是这样的:混淆了放心浮点数比较
get("/lotto").then().body("lotto.lottoId", equalTo(5));
好了,他们用的是Hamcrest匹配器来比较int值5
。
但是他们有一节说,放心JSON解析器默认使用的float
而不是double
,这样反而比较12.12
我应该比较12.12f
:
get("/price").then().body("price", is(12.12f));
等待,所以如何做5
工作以上,这是一个int
而不是一个double
? JSON解析器是否对整数和非整数值使用不同的基元?
但它变得更混乱。熟练的程序员知道你不应该直接比较浮点值(因为存储浮点值的方式复杂等)。相反,你应该使用Matchers.closeTo(double operand, double error)
,它提供了一个错误的余地。这是做到这一点的正确方法。但是请等待 - 即使我将12.12f
传递给Matchers.closeTo(双操作数,双错误),是不是还会将它转换为double
?这将与REST Assured一起工作吗?
你的答案是最接近实际回答我的问题,虽然你的一些答案不是权威。你提出的最重要的一点是,如果我使用'Matcher.closeTo()'(这就是我们应该使用的东西),它可能并不重要什么JSON解析器输出。 –