JUnit 소개

Java 테스트 소개

Maria Milusheva

Senior Software Engineer

간단 정보

  • JUnit은 가장 널리 쓰이는 Java 테스트 라이브러리입니다
  • 잘 유지·관리되고 지속적으로 업데이트됩니다

JUnit 5 로고 이미지.

Java 테스트 소개

JUnit 테스트 작성

addTwoNumbers() 메서드에 대한 테스트를 작성해 봅시다:

public int addTwoNumbers(int a, int b) {
    return a + b;
}
Java 테스트 소개

JUnit @Test 애너테이션

  • IDE나 빌드 도구로 JUnit을 설치합니다(예시는 인용 참조)

  • 모든 테스트에는 @Test 애너테이션이 필요합니다:

import org.junit.jupiter.api.Test;

@Test 
// 테스트 메서드가 여기에 옵니다

애너테이션: 컴파일러와 프레임워크가 메서드를 처리하는 방식을 지정하는 메타데이터. @로 시작합니다

1 https://www.jetbrains.com/help/idea/junit.html
Java 테스트 소개

JUnit 테스트 구조

import org.junit.jupiter.api.Test;

@Test 

void testAddTwoNumbers() {
// Arrange - Given int num1 = 2; int num2 = 2;
// Act - When int actual = addTwoNumbers(num1, num2);
// Assert - Then assertEquals(4, actual); }
Java 테스트 소개

Assert 문

  • 실제 결과와 기대 결과를 빠르게 비교
  • 기대값과 실제값이 다르면 테스트 실패
  • 버그와 오류를 신속히 발견

assert 문을 나타내는 그래픽

Java 테스트 소개

테스트 결과

다음 단언을 보겠습니다:

assertEquals(4, actual); // actual == 4이면 성공

성공하면 Test passed 메시지가 표시됩니다

값이 같지 않으면, 예: actual = 5:

org.opentest4j.AssertionFailedError: expected: <4> but was: <5>

인자 순서를 기억하세요! JUnit에서는 첫 번째 인자가 기대값입니다.

Java 테스트 소개

오버플로우 추가 테스트

@Test 

void testAddTwoNumbers() { // Given int num1 = 2147483647; int num2 = 1; // When int actual = addTwoNumbers(num1, num2); // Then assertEquals(-2147483648, actual); }
Java 테스트 소개

JUnit 및 테스트 메모

  • 하나의 테스트에 여러 단언을 둘 수 있습니다
  • 모든 단언이 성공해야 테스트가 통과합니다
  • 모든 단언을 임포트하려면:
import org.junit.jupiter.api.Assertions.*;
Java 테스트 소개

추가 메모

  • 다음은 IDE에서 필요하지 않은 Datacamp 전용 도구입니다:
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method는 package.Class.method 대신 method만으로 사용하게 해 줍니다
import static java.lang.Math.max;

...

max(3,5); // Math.max(3, 5) 대신
Java 테스트 소개

연습해 봅시다!

Java 테스트 소개

Preparing Video For Download...