我有一个声明性的spring config
@Configuration
public class SpringConfig {
@Bean
public someBean() {
return new Bean1();
}
}
和@Component带注释的Bean
@Component
public class Bean2 {
}
现在我想在我的UnitTest
中同时使用它们@RunWith(SpringJUnit4ClassRunner.class)
public void UnitTest {
@Autowired Bean1 bean1;
@Autowired Bean2 bean2;
}
但我不知道该怎么做。
答案 0 :(得分:3)
你可以这样做:
@ContextConfiguration(classes = {SpringConfig.class})
@RunWith(SpringJUnit4ClassRunner.class)
public void UnitTest {
@Autowired Bean1 bean1;
@Autowired Bean2 bean2;
}
对于类Bean2,您可以添加@ComponentScan注释:
@Configuration
@ComponentScan("com....package.of.bean2")
public class SpringConfig {
@Bean
public someBean() {
return new Bean1();
}
}
如果您不想将ComponentScan添加到SpringConfig类,可以使用ComponentScan注释添加其他测试配置类,并将其添加到ContextConfiguration注释中:
@ContextConfiguration(classes = {SpringConfig.class, SpringTestConfig.class})