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

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

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

引用
20230129
https://blog.isnap.cn/posts/c26de1b4/