[英]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.