2024-06-13 오늘의 TIL

이재성·2024년 6월 14일
post-thumbnail

과제전 개념 정리

목표

Controller, Service, Entity, DTO 레이어에 맞는 단위 테스트 작성하기

  • Controller 테스트.
  • Service 테스트.
  • Mockito를 사용해서 테스트용 객체를 만들기.

AOP

aspect-oriented programming의 약자로 관점 지향 프로그래밍이라고도 말함.
AOP는 프로그램 구조에 대한 또 다른 사고 방식을 제공하여 객체 지향 프로그래밍(OOP)을 보완한다.
OOP에서 모듈화의 주 단위가 "클래스"라고 한다면, AOP에서는 핵심 단위가 "관점"이다.
반복되고 공통적으로 사용되는 부분을 분리함으로써 모듈성을 증가시키는 프로그래밍 방법.

JUnit5

Java 언어에서 독립된 단위 테스트(Unit Test)를 지원해 주는 프레임워크

Mockito

단위 테스트를 위해 모의 객체를 생성하고 관리하는 데 사용되는 Java 오픈소스 프레임워크를 의미함.
사용하면 실제 객체의 동작을 모방하는 모의 객체(Mock Object)를 생성하여 코드의 ‘특정 부분을 격리’시키고 테스트하기 쉽게 만들어줌.

모의 객체

실제 사용되는 객체 생성을 대체하기 위해 테스트에 사용되는 객체를 의미.
일반적으로 모의 객체의 변수 값은 null, 0, false와 같은 기본 타입의 값이 반환,
메서드는 기본적으로 null을 구성

테스트 코드 원칙

F.I.R.S.T

효율적이고 좋은 단위 테스트를 하기 위한 5가지 요소

  • Fast
    테스트는 빠르게 실행되고 빠르게 결과를 알아야한다.
  • Isolated / Independent
    테스트는 그 자체만으로 실행되어야 한다.
    (독립적이어야 하고 다른 테스트에 의존하거나 영향을 주면 안됨)
  • Repeatable
    테스트는 반복 가능해야함.
    (몇 번을 진행하든 똑같은 결과가 나와야함)
  • Self-validating
    테스트는 자체 검증이 가능해야한다.
    (자체로 통과인지 실패인지 결과가 나와야 하며 이것이 자동으로 이루어져야함)
  • Thorough / Timely
    테스트는 철저하고 적절한 때에 작성해야한다.
    실제 코드를 작성하기 바로 전에 작성해야 한다.
    (사용자일때 관리자일 때 모두 테스트가 가능해야 하고,
    어떤 케이스가 실패(예외나 오류)하는지도 테스트해야함)
profile
하이요

0개의 댓글