2017-05-30 98 views
0

我有一个小应用程序,当生活,进行数据库连接,并存储和保留一些数据。春季启动排除数据源配置

我目前正在尝试编写一些测试的中间,我想完全切断应用程序的数据库部分,只是在测试中嘲笑它。

数据源使用配置类进行设置。

@Component 
@Configuration 
public class DataSourceConfiguration { 
    @Bean 
    public DataSource myDataSource() { ... } 
} 

和测试自举,目前类似于

@RunWith(SpringRunner.class) 
@EnableAutoConfiguration(exclude = { 
    DataSourceAutoConfiguration.class, 
    DataSourceTransactionManagerAutoConfiguration.class, 
    HibernateJpaAutoConfiguration.class 
}) 
public class MyTest { 
} 

运行测试时,我可以看到春天试图实例Hibernate和到数据库的连接,我想是因为我的配置类。我怎样才能阻止Spring这样做?

回答

0

没有必要使用:@EnableAutoConfiguration

我们可以通过如下使用@WebMvcTest测试缩小到仅仅是网络层,

@RunWith(SpringRunner.class) 
@WebMvcTest 
public class WebLayerTest { 

    @Autowired 
    private MockMvc mockMvc; 

    @Test 
    public void shouldReturnDefaultMessage() throws Exception { 
    this.mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk()) 
      .andExpect(content().string(containsString("Hello World"))); 
    } 
} 

请参阅如何测试,只有网页或应用程序春使用完整的应用程序上下文加载:https://spring.io/guides/gs/testing-web/

参考嘲讽示例:http://www.lucassaldanha.com/unit-and-integration-tests-in-spring-boot/

+0

看看春天的个人资料 –