java - 如何在 JUnit 测试期间在 @Configuration 类中自动装配?
问题描述
我正在测试我的多模块 spring boot 项目的一个模块。
我正在对一个注释为@Configuration 的类进行单元测试。有一种方法使用注入了@Autowired 的类。在 JUnit 测试期间,我得到了一个 NullPointer,因为 Autowired 不工作。如何让它发挥作用?
该应用程序运行良好,我的问题只发生在 JUnit 测试上。
我尝试了其他答案中的一些注释
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {BasicConfiguration.class, SomeClass.class})
@TestPropertySource(locations= "classpath:applicationTest-configs-ok.properties")
public class BasicConfigurationTest {
@Autowired
BasicConfiguration basicConfig;
@Configuration
public class BasicConfiguration {
@Autowired
private SomeClass someClass ; <--- this is not working
@Bean
AnotherClass someMethod(){
return someClass.doSomething(); <--- nullpointer
}
@Component
SomeClass {
@Value("${test.param}")) <--- defined in applicationTest-configs-ok.properties
String myParam;
}
应该注入 someClass
解决方案
上面的例子是有效的,问题出在我犯了一些错误的地方。
我的错。
推荐阅读
- c# - 使用自定义响应类处理 .NET5 中的错误
- javascript - 从本地模块在特定网页上运行 jquery 代码片段
- ms-access - 将带有富文本的 MS Access 365 报告导出为 Word 条带格式以及所有框等 -
- javascript - 通过变量 PHP 传递数据时 jw 播放器不起作用
- python - Python3 脚本在控制台中运行良好,但在由 crontab 执行时无法运行
- sql - Oracle SQL JSON_QUERY 忽略关键字段
- android - ESP32 在与 MIT App Inventor 2 交互时停止一切
- javascript - 如何使用内联样式显示 Flex?
- java - 如何通过 hashmap 并将键或值与扫描仪输入进行比较?
- python - 如何混合三个 for 循环?[Python]