Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

231129 TIL - 심화주차 체크리스트(테스트코드) 본문

TIL

231129 TIL - 심화주차 체크리스트(테스트코드)

Skipalong 2023. 11. 30. 00:47

오늘도 강의를 듣고 체크리스트를 체크해보겠다.

✅ 체크리스트

  • [ ] 단위 테스트/통합 테스트의 차이점을 설명할 수 있다.
    ->
    • 단위 테스트는 모듈이나 클래스의 세밀한 부분까지 테스트를 할 수 있지만 모듈간의 상호작용에 대한 부분은 테스트를 할 수 없다는 단점이 있다. 효율성 ↑, 포괄성↓
    • 통합 테스트는 세밀한 부분까지는 테스트하기 어렵지만 여러개의 모듈간의 상호작용에 대한 부분을 테스트할 수 있다는 장점이 있다.  효율성 ↓, 포괄성 ↑
    • 단위테스트시에는 Spring이 작동하지 않아서 Spring IoC/DI, DB CRUD가 불가능하지만 통합테스트에서는 Spring이 동작해서 Spring IoC/DI, DB CRUD 가 가능하다.

  • [ ] JUnit 과 Mockito 를 통해 테스트 범위가 분리된 테스트 코드를 작성할 수 있다.
    ->
    JUnit이란 자바 프로그래밍 언어 용 단위 테스트 프레임워크이다. 
    • @BeforEach, @AfterEach, @BeforeAll, @AfterAll 를통해 각 테스트 메서드 전/후, 전체 모든 테스트 메서드 전/후 에 수행할 메서드를 만들어 줄 수 있다.
    • @DisplayName을 통해 테스트의 네이밍을 해줄 수 있고, @Nested를 통해 테스트메서드들을 그룹화 할 수 있고, @Order를 통해 테스트 메서드들이 수행될 순서를 정해줄 수 있다. 
    • @RepeatedTest를 통해 테스트를 반복해서 할수 있고 @ParameterizedTest와 @ValueSource를 통해 파라미터값을 전달하여 테스트를 할 수 있다. 
    • Assertions.assertEquals/True/NotNull/Throws를 통해 기대값과 반환값을 비교해 테스트를 할 수 있다.
    • 이러한 어노테이션들을 통해 테스트를 할 수 있는데 given-when-then패턴을 사용해 given - 테스트에 필요한 값을 설정, when - 테스트하고자하는 대상을 실행, then - 기대값과 반환값을 확인 하는 패턴으로 테스트를 진행한다.

    Mock이란 테스트에 필요한 실제 객체와 동일한 모의 객체를 만들어 테스트의 효용성을 높이기 위해 사용하는 가짜 객체라고 할 수 있다.

    Mockito란 이러한 기능을들 제공해주는 프레임워크이다. 이를 통해 단위 테스트를 할 때 구분되어야하지만 필요한 다른 모듈을 생성해      주는 기능이라고 보면 될 것 같다.