【发布时间】:2019-04-03 14:34:06
【问题描述】:
我正在测试我的多模块 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;
}
应该注入一些类
【问题讨论】:
-
@Smajl 我的问题只是这个 JUnit 测试,我的应用程序运行良好
-
basicConfig被注入好吗? -
@Antoniossss 是的
-
我创建了完全相同的文件并且它可以工作。你能分享你的完整场景吗?
标签: java unit-testing spring-boot