2016-09-30 195 views
0

我對Spring Boot很陌生,試圖學習如何在Spring Boot中完成測試。我閱讀了有助於集成測試應用程序的@SpringBootTest批註。我想知道如何在春季啓動時進行單元測試。單元測試是否需要指定@SpringBootTest批註或僅用於集成測試?是否有特定的註釋用於單元測試?春季啓動中的單元測試

任何指針將不勝感激。提前致謝!

編輯: SpringBootTest註釋僅用於集成測試嗎?我在Spring文檔中找到以下代碼示例:

@RunWith(SpringRunner.class) 
@SpringBootTest 
@AutoConfigureMockMvc 
public class HelloControllerTest { 

@Autowired 
private MockMvc mvc; 

@Test 
public void getHello() throws Exception { 
    mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)) 
      .andExpect(status().isOk()) 
      .andExpect(content().string(equalTo("Greetings from Spring Boot!"))); 
} 
} 

這是一個單元還是集成測試?我的猜測是它不是一個集成測試,因爲它使用了MockMvc。是對的嗎?如果是這樣,這是否意味着@SpringBootTest註釋可以用於不是完整的集成測試的測試?

+0

你不需要任何特殊的單元測試。只需使用'new'來創建你的組件。 –

+0

正如@JBNizet所說,你不需要任何特別的東西來在Spring Boot應用程序中對你的類進行單元測試。只需編寫代碼並運行測試類,就像您不使用Spring Boot一樣。 **但是,如果您想知道如何測試HTTP調用到您的端點**(這將是一個集成測試,而不是單元測試),我可以提供幫助;只是在你的帖子中這麼說。 – walen

+0

感謝您的回覆,我知道Spring Boot提供了非常先進的集成測試功能。我知道Spring Boot提供了一個分片測試功能,可以對應用程序的各個組件進行測試。例如。 WebMvcTest註釋可用於測試控制器部分。這可以考慮單元測試嗎? – Reshma

回答

0

嚴格地說,「單元」測試不應該使用Spring。只要使用JUnit/TestNG/Spock /無論如何,就像通常那樣,測試各個類。 @SpringBootTest用於集成,以及其他測試。