2013-12-20 70 views
0

我有一個聲明Spring配置基於SpringJUnit4ClassRunner與聲明和註解的bean

@Configuration 
public class SpringConfig { 
    @Bean 
    public someBean() { 
     return new Bean1(); 
    } 
} 

和@Component註解豆

@Component 
public class Bean2 { 
} 

現在我想用兩個然後在我的單元測試

@RunWith(SpringJUnit4ClassRunner.class) 
public void UnitTest { 
    @Autowired Bean1 bean1; 

    @Autowired Bean2 bean2; 
} 

但我不知道該怎麼做。

回答

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})