关于springboot:记录后台遇到的两个小问题

37次阅读

共计 847 个字符,预计需要花费 3 分钟才能阅读完成。

specification 查问不起作用

写后盾的时候须要加一个 specification 查问,只返回属于该社区的数据。

于是我减少了如图红框中的查问,调用了 and 函数。

 specification.and(VehicleSpecs.belongToCommunity(district.getId()));

然而执行后发现,这条查问没有依照想法获取到查问到数据, 相当于这条查问并没有作用

在打断点之后, 发现的确进入了查问函数里

测试了很多遍还是如此,这条查问语句并没有起作用。

起初查谷歌之后发现有人和我遇到同样的问题。
解决办法很简略:
让 specification 等于 and 函数返回值

也就是这样:

specification = specification.and(VehicleSpecs.belongToCommunity(district.getId()));

而后回过头看 and 函数的申明才发现:
返回的是一个 Specification 类型的数据。也就是说,我并没有保留这个数据,所以查问生效了。
应该从新给本地变量赋值。这样能力使查问真正增加下来。


之后回过头来想想,我没有想到从新赋值的起因,可能是习惯了下图中的形式,即调用了函数,就真正地把数据增加了进去,不必再去从新赋值。

总结

总结来说还是须要真正看函数的申明,查看它的返回值,以确定是否须要执行相干的操作。因为这个函数的用法和返回值都写在了申明中。

单元测试数据不统一

在单元测试中,第 187 行产生的谬误。

MockMvc 返回的值与冀望的值不统一


然而去控制台一看:值是雷同的。期望值是 0,理论值也是 0。这就很奇怪了,期望值和理论值雷同,为什么两者没有通过判断呢。

很容易分割到是类型出了问题。


测试发现,Long,Integer, String, 都通过了。没通过的是 Short 类型的数据,即红框中的数据。

起初在前面加上 .toString() 能失常通过。

这里 mvc 的 json 类型的数据是 string 类型,与 short 类型数据判断的时候失败了,可能是两者不能失常辨认。

正文完
 0