gpt4 book ai didi

java - jayway jsonpath 使用的默认类型?

转载 作者:搜寻专家 更新时间:2023-11-01 00:57:06 24 4
gpt4 key购买 nike

当我有一个值时

x = 0.5771622052130299

我想使用 spring 3.2 Resutlmatcher 执行以下操作:

.andExpect(jsonPath("$.[1].myX").value(myPojo.getMyX()))

其中 myPojo.getMyX 返回一个 double 值,测试失败,因为 json 被转换为 BigDecimal,并出现错误信息 eg

java.lang.AssertionError: 
For JSON path $.[1].myX type of value expected:
<class java.lang.Double> but was:<class java.math.BigDecimal>

我怎样才能避免这种情况?

最佳答案

我遇到了同样的问题,但我无法更改 Hamcrest 用于 JSON 值 (BigDecimal) 的类型。

使用了这个解决方法:

public static final double DEFAULT_PRECISION = 0.000001;

public static Matcher<BigDecimal> closeTo(double value, double precision) {
return BigDecimalCloseTo.closeTo(new BigDecimal(value), new BigDecimal(precision));
}

public static Matcher<BigDecimal> closeTo(double value) {
return closeTo(value, DEFAULT_PRECISION);
}

...

.andExpect(jsonPath("$.values.temperature").value(closeTo(-13.26517)));

关于java - jayway jsonpath 使用的默认类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com