Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TEST] 테스트 코드 구현 #12

Closed
wants to merge 45 commits into from

Conversation

eundeang
Copy link
Collaborator

@eundeang eundeang commented Sep 12, 2024

📌 과제 설명

DCI(Describe, Context, It) 패턴 형태의 레이아웃을 적용했습니다.

  • Describe : 테스트 대상(주체)를 의미합니다. 네이밍 컨벤션은 class Describe~ 로 설정했고 대상은 class로 설정했습니다.
  • Context : 테스트 환경 또는 상황을 설정합니다. 어떤 조건 또는 상태에서 테스트가 수행되는지를 명시합니다. 네이밍 컨벤션은 Context~로 하였습니다.
  • It : 실제 테스트할 동장을 서술하며 주어진 상황에서 무엇이 발생할 것인지에 대한 기대를 작성하였습니다

Inner Class를 통해 DCI의 계층형 구조를 표현하였습니다.

👩‍💻 요구 사항과 구현 내용

DCI의 가독성을 위해 계층형 구조로 구현했습니다.
testhtmltestintel

class OrderServiceImplTest {
		//코드 생략
    @Nested
    @DisplayName("OrderByEmail 메소드는")
    class DescribeOrderByEmail {

	      //코드 생략

        @Nested
        @DisplayName("이메일에 해당하는 주문이 없는 경우")
        class ContextGetOrderByInvalidEmail {
            @Test
            @DisplayName("빈 배열을 리턴한다.")
            void ItReturnsAnEmptyList() {
                Assertions.assertTrue(orderService.getOrderByEmail(email).isEmpty());
            }
        }

        @Nested
        @DisplayName("이메일에 해당하는 주문이 있는 경우")
        class ContextGetOrderByValidEmail {
            @Test
            @DisplayName("해당 이메일이 지정한 배열을 리턴한다.")
            void ItReturnsNotEmptyArray() {
                saveOrder();
                Assertions.assertNotNull(orderRepository.findAllByEmailWithOrderProducts(email));
            }
        }
    }
}

✅ PR 포인트 & 궁금한 점

이건 우형 코틀린 테스트케이스 작성 방식인데, 자바가 아니라서 이해하는데 한참걸렸네요..
https://techblog.woowahan.com/5825/

m-a-king and others added 30 commits September 11, 2024 11:39
[설정 추가 내용]
-. AOP 라이브러리 추가

[구현 내용]
1. 패키지 전체 AOP 설정 구현
2. 함수 별 AOP 설정 구현 (어노테이션 활용)
-. AOP 라이브러리 추가

[구현 내용]
1. 패키지 전체 AOP 설정 구현
2. 함수 별 AOP 설정 구현 (어노테이션 활용)
순수 JPA EntityListener -> Spring AuditingEntityListener
service에 있는 factory method를 DTO에게 옮겼습니다
그 외, JPA 연관관계 편의 메서드 반복형 추가
Rest 를 붙이지 않으니 무한 redirection 되는 버그를 해결
superBuilder를 사용해서 상속받은 컬럼도 접근
주문 등록을 관리하기 위해서 주문상품 서비스가 필요하다고 생각함
더 아름답고, 멋진 코드 나는 완성
…idation

Validation 을 처리하려고 했지만... 너무 많은 것을 해버린...
@eundeang
Copy link
Collaborator Author

헐랭 rebase해서 올렸더니 이전 커밋이랑 같이 올라오네욥..?

@7zrv 7zrv closed this Sep 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants