개념 공부/Test Code4 [Test Code / Java] Spring 프로젝트에서 Persistence Layer의 테스트 Persistence Layer의 테스트Persistence Layer는 데이터에 액세스하는 영역이다.데이터베이스에 액세스하는 로직만 갖고 있기 때문에, 단위 테스트의 성격을 많이 띠고 있다.Persistence Layer를 테스트하는 이유는 내가 작성한 코드로 인해 쿼리가 제대로 나갈 것인가를 검증하기 위함이다. @SpringBootTest, @DataJpaTest@SpringBootTest: 스프링에서 통합 테스트를 제공하는 어노테이션. 이 어노테이션을 달고 테스트하면 스프링 서버를 띄워서 테스트할 수 있다.@DataJpaTest: 얘도 스프링 서버를 띄워서 테스트하는 어노테이션이다. 근데 이 어노테이션은 스프링부트 테스트보다는 가볍다. JPA 관련된 빈들만 띄워서 주입을 해주기 때문이다. Persi.. 2024. 12. 29. [Test Code / Java] @DisplayName과 BDD 테스트는 []다.테스트란 문서라고 할 수 있다.테스트 코드는 프로덕션 기능을 설명하는 문서가 될 수 있다.다양한 테스트 케이스를 통해 프로덕션 코드를 이해하는 시각과 관점을 보완할 수 있다.어느 한 사람이 과거에 경험했던 고민의 결과물을 팀 차원으로 승격시켜서, 모두의 자산으로 공유할 수 있다.DisplayName@DisplayName은 Junit5부터 시작된 어노테이션이다.테스트 메서드 이름만으로는 이 테스트가 어떤 테스트인지 알아보기 어려울 수 있다.이때 @DisplayName 어노테이션을 통해 테스트에 대한 좀 더 상세한 설명을 적을 수 있다.또한 인텔리제이에서 작업할 때 @DisplayName을 사용하면 유용한 점이 하나 더 있다.인텔리제이의 Settings > Build, Execution, D.. 2024. 12. 28. [Test Code / Java] TDD(Test Driven Development) TDD: Test Driven Development란?프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현 과정을 주도하도록 하는 방법론즉, 기능 구현보다 테스트를 먼저 구현하고, 기능을 구현하거나 수정할 때 테스트 코드의 도움을 받을 수 있는 방식을 의미한다. Red-Green-RefactorTDD의 방법으로는 Red, Green, Refactor를 주로 언급한다.Red: 실패하는 테스트를 먼저 작성. → 기능 구현이 돼있지 않기에 테스트가 실패하는 것이 당연하다.Green: 빠른 시간 내에 테스트를 통과하는 최소한의 기능 구현하기. → 초록불을 볼 수만 있다면, 이 단계에서의 구현은 다소 엉터리여도 된다.Refactor: 테스트 통과 상태를 유지하면서 구현 코드를 개선해나간다.Red-Green.. 2024. 12. 27. [Test Code / Java] 단위 테스트 단위 테스트작은 코드 단위(클래스 또는 메서드)를 독립적(=네트워크를 탄다든가 하는 외부 상황에 의존하지 않음)으로 검증하는 테스트검증 속도가 빠르고 안정적이다.JUnit5단위 테스트를 위한 테스트 프레임 워크XUnit - Kent Beck자바 말고도 여러 진영에서 사용여러 어노테이션 지원 (ex. @Test)AssertJ테스트 코드 작성을 원활하게 돕는 테스트 라이브러리풍부한 API, 메서드 체이닝 지원깔끔한 코드 작성 가능 테스트 케이스 세분화하기질문하기: 암묵적이거나 아직 드러나지 않은 요구사항이 있는가?이런 것을 항상 염두에 두어야 한다.해피 케이스예외 케이스ex) 아메리카노 0개 이런식으로 입력되면 어떡함?→ 경계값 테스트가 굉장히 중요하다!범위(이상, 이하, 초과, 미만), 구간, 날짜예를 .. 2024. 12. 26. 이전 1 다음