簡體   English   中英

Spring Boot排除數據源配置

[英]Spring Boot Exclude DataSource Configuration

我有一個小型應用程序,可以在運行時建立數據庫連接,並存儲和持久保存一些數據。

我目前正在嘗試編寫一些測試,並且我想完全切斷應用程序的數據庫部分,並在測試中對其進行模擬。

數據源使用配置類進行設置。

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

和目前看起來與

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

運行測試時,我可以看到由於我的config類,我認為Spring正在嘗試實例化Hibernate和與數據庫的連接。 我怎樣才能阻止Spring這樣做呢?

無需使用:@EnableAutoConfiguration

我們可以使用@WebMvcTest將測試范圍縮小到僅Web層,如下所示,

@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")));
    }
}

請參閱如何僅通過Web或使用完整的應用程序上下文加載來測試spring應用程序: https : //spring.io/guides/gs/testing-web/

請參閱模擬示例: http : //www.lucassaldanha.com/unit-and-integration-tests-in-spring-boot/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM