2017-07-26 129 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(...)