본문 바로가기

TIL(Today I Learned)

TIL-230726

📝오늘 공부한 것

  • 스파르타코딩클럽 Spring 심화주차 test 코드 부분 강의 듣기

 

알게 된 점❗ 

단위 테스트

- 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지를 검사하는 테스트 기법

- 빠르게 작성할 수 있고 문제 발생 시 어느 부분이 잘 못 되었는지를 빠르고 정확하게 확인할 수 있다는 장점이 있음.

 

JUnit5

- 자바 프로그래밍 언어용 단위 테스트 프레임워크

 

[Before  After]

- @BeforeEach : 각각의 테스트 코드가 실행되기 전에 수행되는 메서드를 만들어 줌.

- @AfterEach : 각각의 테스트 코드가 실행된 후에 수행되는 메서드를 만들어 줌.

- @BeforeAll : 모든 코드가 수행되기 전에 최초로 수행되는 메서드를 만들어 줌. static 메서드로 만들어야 함.

- @AfterAll : 모든 테스트 코드가 수행된 후 마지막으로 수행되는 메서드를 만들어 줌. static 메서드로 만들어야합니다.

 

[테스트 꾸미기]

- @DisplayName : 테스트의 내용을 한눈에 알아볼 수 있게 네이밍 해줌. 테스트의 수행 내용들을 빠르게 파악할 수 있음.

- @Nested : 주제 별로 테스트를 그룹지어서 파악하기 좋음.

- @Order : 테스트를 메서드 단위로 순서를 매길 때는 @TestMethodOrder(MethodOrderer.OrderAnnotation.class) 애너테이션 설정을 해야함. 그런 다음 원하는 순서에 맞게 메서드에 @Order() 애너테이션을 추가하고 () 괄호안에 순서를 입력

 

[테스트 반복하기]

- @RepeatedTest :

    - @RepeatedTest를 사용하여 해당 테스트 메서드를 반복할 수 있음.

    - name 속성을 사용하여 네이밍할 수 있음.

    - RepetitionInfo 값을 파라미터로 받아서 현재 반복 횟수와 총 횟수 값을 확인할 수 있음.

- @ParameterizedTest :

    - @ParameterizedTest를 사용하여 파라미터를 받아 테스트할 수 있는 메서드를 만들 수 있음.

    - @ValueSource(ints= {1,2,3,4,5,6,7,8,9}를 사용하여 파라미터 값을 전달할 수 있음.

        - 전달되는 파라미터 수 만큼 테스트 메서드가 수행

        - int, String 등 여러 타입의 파라미터를 전달할 수 있음.

 

[Given  When  Then 패턴]

- Test Code 스타일을 표현하는 방식

Given : 테스트 하고자하는 대상을 실행하기 전에 테스트에 필요한 값(상태)을 미리 선언

When : 테스트 하고자하는 대상을 실제로 실행

Then : 어떤 특정한 행동(테스트 대상 실행) 때문에 발생할거라고 예상되는 결과에 대해 예측하고 맞는지 확인

 

https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations

 

JUnit 5 User Guide

Although the JUnit Jupiter programming model and extension model do not support JUnit 4 features such as Rules and Runners natively, it is not expected that source code maintainers will need to update all of their existing tests, test extensions, and custo

junit.org

 

느낀 점🤔

프로젝트 진행 중 기술 매니저님의 test코드를 작성해보라는 피드백이 있었다. 그래서 spring강의 심화부분에 test코드부분이 있다는 것이 기억나서 test코드 부분만 먼저 들어보았다. 강의에서는 test코드가 무엇인가에 대한 대략적인 것들만 나와있어서 이 강의를 듣고 직접 test코드를 작성해보기엔 어렵겠다는 생각이 들었다. 다음 프로젝트에서는 간단한 test코드부터 작성해봐야겠다.