2017-07-26 128 views
0

我有一个弹簧引导应用程序。在使用@SpringBootApplication注解的主类中,我使用导入注释导入了一些配置。如何覆盖spring的导入注释

@SpringBootApplication 
@Import({ MyConfiguration.class }) 
public class MySpringBootApp { 

    public static void main(String[] args) { 
     new SpringApplicationBuilder(MySpringBootApp.class).build().run(args); 
    } 
} 

现在,当我运行我的JUnit测试类,有注明“@RunWith(SpringRunner.class)”,它加载的应用程序,并在主类进口configuartion类,也被加载(即MyConfiguration )。

@RunWith(SpringRunner.class) 
public class MyTest { 
.... 
} 

有没有办法覆盖导入,以便在运行测试时不加载MyConfiguration。

回答

1

我知道你需要使用SpringRunner,但你想使用不同的配置。在这种情况下,你只需标注你的测试类@ContextConfiguration(classes = SomeConfigurationClass.class)

因此,这将是这样的:

@RunWith(SpringRunner.class) 
@ContextConfiguration(classes = SomeConfigurationClass.class) 
public class MyTest { 
.... 
} 

如果你不希望任何Spring容器,只是删除@RunWith(...)