봄 일기 4

테스트 코드 수명 주기

-@BeforeAll : 테스트 시작 전에 호출할 메소드
-@BeforeEach: 각 테스트 메소드가 실행되기 전에 실행될 메소드.
-@AfterAll: 테스트 종료 시 호출되는 메소드
-@AfterEach : 각 테스트 메소드 종료 시 호출할 메소드

WebMvcTest(테스트 대상 class.class)

– 대상 클래스만 테스트합니다.
– @SpringBootTest보다 가벼운 테스트에 사용.
-슬라이스 테스트: 테스트를 위해 각 슬라이스를 분할합니다.

@MockBean

– 가짜 객체 생성 및 주입
– 액션은 반드시 Given() 메소드에 의해 정의되어야 합니다.

모키토

-given() : 어떤 메서드가 호출되고 어떤 매개변수가 주입될지 가정합니다.
-willReturn() : 반환할 결과를 정의합니다.
-perform(): 서버에 URL 요청을 보내는 것처럼 통신 테스트 코드를 작성하여 컨트롤러를 테스트합니다.
예) get(“/product?number=” + productId))
.andExpect(상태().isOk())
.andExpect(jsonPath(“$.number”).exists())
.andDo(인쇄());
-verify(): 지정된 메서드가 실행되었는지 확인하는 역할.

주어진(제품/서비스.getProduct(123L)).돌아올 것이다(

새로운 제품응답Dto(123L, “펜”, 5000, 2000년));

제품 ID = “123”;

mockMvc.수행하다(

받다(“/제품?번호=” + 제품 ID))

.그리고 기대(상태().괜찮아())

.그리고 기대(jsonpath(“$.숫자”).존재한다())

.그리고 기대(jsonpath(“$.이름”).존재한다())

.그리고 기대(jsonpath(“$.가격”).존재한다())

.그리고 기대(jsonpath(“$.주식”).존재한다())

.그리고 TU(누르다());

확인하기 위해(제품/서비스).getProduct(123L);

지슨

-Json 파싱 라이브러리
– 자바 객체를 json 문자열로 변환하거나 그 반대로 변환합니다.

모의 객체 사용

-Spring Reliance: @MockBean Spring에 목 객체를 등록합니다.
@MockBean ProductServiceImpl 제품 서비스;
-독립: Mockito.mock() 직접 개체 초기화 – 이것은 더 빠릅니다.
private ProductRepository productRepository = Mockito.mock(ProductRepository.class);

@DataJpa테스트

– 기본적으로 @Transactional 포함, 테스트 종료 시 DB 롤백.
– 내장 DB를 기본으로 사용