spring-boot - 在Junit测试中注入标有@Qualifier的bean
问题描述
我有以下配置类:
@Validated
@RefreshScope
@Data
@Component
@Configuration
public class AdminUserConfiguration{
@Value("${admin.user.login}")
private String login;
@Value("${admin.user.password}")
private String password;
@Bean(name = "adminUser")
public User getAdminUser(){
return User.builder().login(login).password(password).build();
}
}
和以下服务:
@Service
@RequiredArgsConstructor
public class UserService{
private final SomeService someService;
@Qualifier("adminUser")
private final User adminUser;
// some methods
}
我有我的配置测试类:
@TestConfiguration
public class AdminUserConfigurationTest{
@Bean
@Primary
public User getAdminUser(){
return User.builder().login("login").password("password").build();
}
}
和我的测试课:
public class UserServiceTest {
@BeforeEach
public void init() {
MockitoAnnotations.openMocks(this);
}
@Mock
SomeService someService;
@InjectMocks
UserService userService;
@Test
public void someTest(){
}
}
当我运行我的 UserServiceTest 的所有测试时,beanadminUser
始终为空。我试过了 :
- 使用`@ContextConfiguration(classes = AdminUserConfigurationTest.class)
- 创建一个静态嵌套
@Configuration
类,但adminUser
bean 仍然为空。我做错了什么,为什么它不起作用?谢谢你的帮助!
解决方案
推荐阅读
- javascript - 对 :host CSS 伪类应用更深入的选择
- xamarin - 有什么方法可以将 Xamarin Forms 应用程序与 SQLite 数据库从一台设备同步到另一台设备?
- python - 使用 kubernetes python 客户端将文件从 pod 复制到主机
- javascript - MapBox:为点分配一个图标
- python - python pip 不工作(添加到路径)给 python38\lib\runpy.py 错误
- r - 您可以在匿名函数中使用带有 tidyeval 的动态列名吗?
- javascript - 如何将包含多个数组的对象转换为javascript中的对象数组?
- c# - C#:结构数组?可能吗?
- php - 回显字符串然后替换字母的函数
- css - 元素在底部得到了不受欢迎的边距