gpt4 book ai didi

spring - 如何使用 Mockito 在 Spring 中只模拟一个 bean 的方法?

转载 作者:行者123 更新时间:2023-12-01 04:47:18 25 4
gpt4 key购买 nike

我使用 @Primary@Profile 在 Spring 测试中模拟一个 bean:

@Profile("test")
@Configuration
public class TestBeanConf {

@Bean
@Primary
public UserService userService() {
UserService userService = Mockito.mock(UserService.class);
TokenValidationUrl validation = new TokenValidationUrl();
validation.setValid(true);
validation.setUid("123456789");
Mockito.when(userService.tokenValidation("23456")).thenReturn(validation);
return userService;
}

但是 UserService bean 的其他方法返回 null ,我如何监视真正创建的 bean 并且只模拟 tokenValidation 方法?

最佳答案

为了监视 UserService bean 的一种方法,在构建这个 bean 的过程中,我们通过将其作为参数发送并使用 Mockito 的监视功能从 Spring 上下文 Autowiring UserService 的现有实例:

@Profile("test")
@Configuration
public class TestBeanConf {

@Bean
@Primary
public UserService userServiceTest(UserService userService) {
UserService userService = Mockito.spy(userService);
TokenValidationUrl validation = new TokenValidationUrl();
validation.setValid(true);
validation.setUid("123456789");
Mockito.when(userService.tokenValidation("23456")).thenReturn(validation);
return userService;
}

关于spring - 如何使用 Mockito 在 Spring 中只模拟一个 bean 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45649545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com