저는 Spring Boot를 처음 사용하고 Spring Boot에서 테스트를 수행하는 방법을 배우려고합니다. 응용 프로그램 통합 테스트에 도움이되는 @SpringBootTest 주석에 대해 읽었습니다. 스프링 테스트에서 단위 테스팅이 어떻게 이루어져야하는지 궁금합니다. 단위 테스트에서 @SpringBootTest 주석을 지정해야합니까, 아니면 통합 테스트에만 사용해야합니까? 단위 테스트에 사용될 특수한 주석이 있습니까?봄 부팅시 단위 테스트
모든 포인터가 많이 감사하겠습니다. 미리 감사드립니다!
편집 : SpringBootTest 주석은 통합 테스트에만 사용됩니까? 스프링 문서에서 다음 코드 예제를 발견했습니다.
@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를 사용하기 때문에 통합 테스트가 아니라는 것이다. 그게 맞습니까? 그렇다면 @ FlringBootTest 주석을 본격적인 통합 테스트가 아닌 테스트에 사용할 수 있다는 의미입니까?
단위 테스트를 수행하는 데 특별한 것이 필요하지 않습니다. 테스트 할 컴포넌트를 생성하기 위해'new'를 사용하십시오. –
@JBNizet이 말했듯이 스프링 부트 애플리케이션에서 클래스를 테스트 할 때는 특별한 것이 필요하지 않습니다. Spring Boot를 사용하지 않았다면 할 일과 마찬가지로 테스트 클래스를 작성하고 실행하십시오. ** 그러나 당신이 알고 싶은 것은 엔드 포인트 **에 HTTP 호출을 테스트하는 방법입니다 (단위 테스트가 아닌 통합 테스트 일 것입니다). 귀하의 게시물에 그렇게 말하십시오. – walen
응답 해 주셔서 감사합니다. Spring Boot는 매우 앞선 통합 테스트 기능을 제공합니다. Spring Boot는 슬라이스 테스트 기능을 제공하여 애플리케이션의 개별 구성 요소를 테스트 할 수 있다는 것을 알고 있습니다. 예를 들어. WebMvcTest 주석을 사용하여 컨트롤러 부분을 테스트 할 수 있습니다. 이것은 단위 테스트로 간주 될 수 있습니까? – Reshma