20230129

折腾的单元测试 - Spring 篇

1. @Value("${…}")问题

代码中出现 @Value 属性时,在单元测试中会出现类型错误或者找不到配置时,试过很多方法:如以 SpringBootApplication 或 ContextConfiguration 或其它方式,但是觉得运行时逻辑太重,甚至有些项目可能根本无法运行。最后结论应该为使用 @TestPropertySource 或者是 @SpringBootTest 的 properties 属性来主动指定更新优雅。

image-20230129104808357

2. Bean 管理

代码中出现@Resource 或者 @Autowired引入的 Bean 时,如果仅仅是 SpringBootTest 是不会帮初始化的,这时就需要引入 MockBean 了,理论上 MockBean 会是有一个复杂的使用,涉及嵌套等。这里对于单元测试最简单的是当前文件冗余使用。

image-20230129141059124

当然这样做只会对应调用位置不会报错了,但是调用结果会返回空,要解决这问题则需要引入Mockito了,可针对非当前方法测试的必要逻辑,可使其返回预期结果即可。

image-20230129141355197

引用


20230129
https://blog.isnap.cn/posts/c26de1b4/
作者
三岁于辛
发布于
2023年1月29日
许可协议