You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库字段is_busy为true时,单元测试为何仍能通过?

为啥数据库is_busy为true但单元测试还能通过?

兄弟,我帮你梳理几个最可能的原因,你可以挨个排查:

  • Employee类的equals方法没把is_busy算进去
    你用Assert.assertEquals(expectedList, actualList)比较列表时,底层是逐个调用Employee对象的equals()方法判断是否相等。如果你的Employee类重写equals()时只考虑了id、姓名、年龄这些字段,完全漏掉了is_busy,那不管这个字段是true还是false,只要其他字段匹配,equals就会返回true,测试自然就通过了。

  • 接口返回的JSON里is_busy其实是false
    别看数据库里存的是true,说不定业务逻辑在查数据的时候偷偷把这个字段改成false了(比如某些状态转换、过滤逻辑),或者在JSON序列化的时候把is_busy给忽略了(比如加了@JsonIgnore注解),导致返回的JSON里is_busy是false,刚好和你预期的一致。你可以在调试时直接打印EntityUtils.toString(response.getEntity())的内容,或者手动调用http://localhost:8087/employee接口,看看返回的JSON里is_busy到底是啥值。

  • 测试用的是另一个数据库
    很多单元测试会用内存数据库(比如H2),和你平时查看的开发/生产数据库不是同一个。你看到的数据库里is_busy是true,但测试用的数据库里对应的员工数据is_busy其实是false,所以测试能顺利通过。可以去看看你的测试配置文件,确认下数据源是不是和你查看的数据库一致。

内容的提问来源于stack exchange,提问作者nhxkutex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:10:23