JUnit 테스트의 구조

2023. 10. 13. 22:58·공부

JUnit 테스트의 구조 → AAA 패턴

 

이는 Arrange(준비), Act(실행), Assert(단언)의 약자로, 각 단계에서 수행되는 작업을 의미

💡 Intellij 테스트 단축키 (클래스에서) cmd + Shift + T

테스트 하기 전!

  • 어떤 테스트 코드가 다른 테스트에 영향을 주는 것을 최소화
  •  테스트 클래스에서 static 필드를 피하자!
  •  테스트 메서드에서 시험하는 시나리오를 정확하게 요약해서 설정

@Test

  • 해당 메소드가 단위 테스트임을 명시하는 어노테이션
  • 테스트 패키지 하위의 `@Test` 어노테이션이 붙은 메소드를 단위 테스트로 인식하여 실행
  • 테스트 이름이 함수 이름이 default로 지정됨

@DisplayName

  • 읽기 좋은 다른 이름을 부여 가능
  • 코드 예시
@Test
@Displayname("두 값의 산술 평균 검사")
public void answersArithmeticMeanOfTwoNumbers() {
...
}

 

 

1. Arrange - 준비

테스트 상태를 설정하는 준비 단계

  • 테스트를 수행하기 위해 초기 상태를 설정
  • 필요한 객체를 생성하고, 의존성을 주입하고, 데이터를 준비하는 등의 작업을 수행

2. Act - 실행

테스트를 준비한 후에는 검증하려는 코드 실행

  • 정확히 어떤 동작을 검증하기 위해 특정 메서드나 기능을 호출

3. Assert - 단언

기대하는 결과를 단언

  •  코드 예시
@Test
public void answersArithmeticMeanOfTwoNumbers() {
	//준비
	ScoreCollection collection = new ScoreCollection();
	collection.add(()->5);
	collection.add(()->7);
    
    //실행  
    int actualResult = collection.arithmeticMean();  

    //단언  
    Assertions.assertEquals(6,actualResult);  
}

 

Assertions 키워드를 작성하시 자동완성 기능으로 두 가지 추천해준다.

1) `org.junit.jupiter.api.Assertions` - junit

2) `org.assertj.core.api.Assertions` - assertj



💡 Assertions → Add on-demand static import Alt + Enter (단축키 팁!)

* JUnit과 AssertJ 값 비교 메서드

AssertJ를 더 많이 쓰지만 그래도 알아두자!

a: 예상 값, b: 실제 값

// JUnit
assertEquals(a, b);

// AssertJ
assertThat(a).isEqualTo(b);

'공부' 카테고리의 다른 글

[JAVA] 자바 형변환  (1) 2024.01.26
자바의 정석 16강 네트워킹 정리  (1) 2023.10.28
JUnit5 와 AssertJ 비교해보자  (0) 2023.10.27
@Beafore, @After 어노테이션 알아보기  (0) 2023.10.27
자바 문법 정리  (0) 2023.10.23
'공부' 카테고리의 다른 글
  • 자바의 정석 16강 네트워킹 정리
  • JUnit5 와 AssertJ 비교해보자
  • @Beafore, @After 어노테이션 알아보기
  • 자바 문법 정리
jiixon
jiixon
  • jiixon
    Dev:elop
    jiixon
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • JAVA (0)
      • SPRING (3)
      • SERVER (2)
      • 공부 (20)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • POST
    • SETTING
  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    spring
    springboot
    알고리즘
    Elastic Beanstalk
    서버
    배포
    spring jpa
    tdd
    AssertJ
    Bdd
    java
    테스트
    자바
    AWS
    junit
    Kotlin
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jiixon
JUnit 테스트의 구조
상단으로

티스토리툴바