JSON 带有大小数的路径 预期:是 <1000> 但:是 <1000>

JSON path with big decimal Expected: is <1000> but: was <1000>

我的 Junit5 测试没有通过。

JSON path "$.balance" Expected: is <1000> but: was <1000>

我使用了树跟随模式。第一个是 returns 初始错误的方法。

其他两个 Java 抱怨“无法从 BigDecimal 转换为整数”。

我哪里错了?

BigDecimal balance = new BigDecimal(1000);
        
when(bankAccountTransactionsService.balance()).thenReturn(balance);
        
mvc.perform(get("/api/v1/balance")).andExpect(status().isOk())
                .andExpect(jsonPath("$.balance", Matchers.comparesEqualTo(bankAccountTransactionsService.balance())));
mvc.perform(get("/api/v1/balance")).andExpect(status().isOk())
                .andExpect(jsonPath("$.balance", Matchers.comparesEqualTo(balance)));
mvc.perform(get("/api/v1/balance")).andExpect(status().isOk())
                .andExpect(jsonPath("$.balance", is(balance)));

可能是类型不匹配。您可以使用 balance.intVal():

修复它
BigDecimal balance = new BigDecimal(1000);
when(bankAccountTransactionsService.balance()).thenReturn(balance);
mvc.perform(get("/api/v1/balance")).andExpect(status().isOk())
                .andExpect(jsonPath("$.balance", is(balance.intVal())));