usage documentation 피보험자 나머지는 다음과 같은 예를 가지고 피보험자 :혼란은 부동 소수점 비교
get("/lotto").then().body("lotto.lottoId", equalTo(5));
확인을, 그래서 그들은 int 값 5
비교하는 Hamcrest의 정규 표현을 사용하고 있습니다.
그러나 그들은 기본적으로 REST 피보험자 JSON 파서 내가 12.12f
에 비교해야 float
하지 double
, 그래서 대신 12.12
에 비교의 사용을 알리는 부분이 있습니다
get("/price").then().body("price", is(12.12f));
기다립니다, 그래서 어떻게 5
일했다 위의 그림은 int
이고 double
이 아닌 것은 무엇입니까? JSON 파서가 정수 및 정수가 아닌 값에 대해 다른 프리미티브를 사용합니까?
하지만 혼란스러워집니다. 잘 알고있는 프로그래머는 부동 소수점 값을 직접 비교해서는 안된다는 것을 알고 있습니다 (부동 소수점 값이 저장되는 방식 등의 복잡성 때문에). 대신 오류 범위를 제공하는 Matchers.closeTo(double operand, double error)
을 사용해야합니다. 이것이 올바른 방법입니다. 그러나 기다려라. --- 비록 내가 12.12f
을 Matchers.closeTo (double 피연산자, double error)에 건네도 여전히 double
으로 변환되지 않을까? REST Assured와 함께 작동합니까?
귀하의 답변 중 일부는 정식 답변이 아니지만 귀하의 답변은 실제로 내 질문에 가장 근접하게 나타났습니다. 가장 중요한 점은 Matcher.closeTo()를 사용하면 JSON 구문 분석기가 무엇을 내놓는 지 상관하지 않을 수 있다는 것입니다. –