본문 바로가기

개발

JUnit - 테스트 클래스 생성 및 테스트 실행

반응형

1. test 폴더 생성
 (1) 폴더 생성

(2) 테스트 폴더로 설정
 프로젝트 오른쪽 클릭 > Open Module Settings 

Project Settings > Modules > 테스트 폴터 클릭 후 Mark as 에서 Tests 클릭 하여 테스트 폴더로 선언 

Mark as 에서 Tests 클릭 후 모습 

Tests 폴더로 설정 후 프로젝트 네비게이터 에서 변한 모습 확인 

Tests 폴더로 설정 전

Tests 폴더로 설정 전
 test 폴더가 회색
Tests 폴더로 설정 후
 test 폴더가 초록색

2. 테스트 코드 작성 
 테스트 할 소스에 커서를 두고 ctrl + shift + t > enter 

소스 파일 생성 
 - Testing library : JUnit4
 - Generate test methods for :  메소드 생성 

생성된 테스트 소스 확인 

 

package iloveyouboss;

// fail 메소드가 있다.
import static org.junit.Assert.*;
// Test 애너테이션이 있다.
import org.junit.*;

// 테스트할클래스명+Test 로 보통 명명 한다. 
// 테스트할 클래스에 대해서 여러 테스트 클래스를 만드는 경우도 있다.
public class ScoreCollectionTest {

    // Test 애너테이션이 붙은 메소드는 테스트를 하는 메소드이다. 
    // 테스트가 아닌 메소드도 포함될 수 있으며 JUnit은 그것들을 알아서 제외한다.
    @Test
    // 가장 중요한 정보 조각인 테스트 메서드의 이름은 기본적으로 test 이다. 
    public void test() {
        // 실패를 일으키는 메소드 
        fail("Not yet implemented");
    }
}

 

3. JUnit 실행
 패키지 명 오른쪽 클릭 > Run > All Tests

테스트 코드 실행 결과

 - test 메소드에 입력 한 fail("Not yet implemented");이 호출된 모습

 

test 메소드에서 fail 제외후 테스트 실행 

테스트가 성공한 모습 

 

4. 테스트 코드 생성 및 확인 
  answersArtithmeticMeanOfTwoNumbers 메소드 생성 

package iloveyouboss;

// fail 메소드가 있다.
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
// Test 애너테이션이 있다.
import org.junit.*;

// 테스트할클래스명+Test 로 보통 명명 한다.
// 테스트할 클래스에 대해서 여러 테스트 클래스를 만드는 경우도 있다.
public class ScoreCollectionTest {

    // Test 애너테이션이 붙은 메소드는 테스트를 하는 메소드이다.
    // 테스트가 아닌 메소드도 포함될 수 있으며 JUnit은 그것들을 알아서 제외한다.
    @Test
    // 가장 중요한 정보 조각인 테스트 메서드의 이름은 기본적으로 test 이다.
    public void test() {
        // 실패를 일으키는 메소드
//        fail("Not yet implemented");
    }
    
    @Test
    public void answersArtithmeticMeanOfTwoNumbers(){
        // 준비 
        ScoreCollection collection = new ScoreCollection();
        collection.add(() -> 5);
        collection.add(() -> 7);
        
        // 실행
        int actualResult = collection.arithmeticMean();
        
        // 단언
        // actualResult 값이 6과 같다면 테스트 성공 아니면 테스트 실패 
        assertThat(actualResult, equalTo(6));
    }
}

결과 

반응형

'개발' 카테고리의 다른 글

맥에서 vmware 무료로 사용하기  (0) 2021.08.15
카프카  (0) 2021.08.14
Java - 애너테이션  (0) 2021.06.27
Java - 열거형(enum)  (0) 2021.06.27
Java - Generics 란  (0) 2021.06.26