Spring Boot 单元测试无法 mock @Value 标注的字段
Spring Boot 大约 456 字代码
@Service
public class HiServiceImpl implements HiService {
@Value("${server.port}")
int port;
@Override
public int sayHi() {
System.out.println("HiServiceImpl sayHi: " + port);
return port;
}
}
解决方法
使用Spring Boot Test
包下的ReflectionTestUtils
,反射设置字段。
import org.springframework.test.util.ReflectionTestUtils;
@Mock
HiService hiService;
@Test
void test() {
ReflectionTestUtils.setField(hiService, "port", 100);
}
阅读 692 · 发布于 2023-02-23
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
MySQL/Oracle 更新或替换字符串字段中的部分内容阅读 3296
-
MyBatis ${} 和 #{} 区别阅读 663
-
JMeter 登录后进行压测以及压测结束后退出阅读 2014
-
MySQL 查看配置文件路径阅读 2736
-
IDEA 远程调试 Docker 容器中的 Spring Boot 程序阅读 2149
-
Kubernetes 数据存储 HostPath阅读 1082
-
IntelliJ IDEA 选择 Open matching files in associated application后更改打开方式阅读 5093
-
Java 并发编程之 AQS ReentrantLock await signal 源码解析阅读 1704
-
Spring Boot 3 使用 Spring Native 构建二进制可执行文件阅读 1191
-
Chrome 打包插件 - Windows 平台阅读 1880