Appendix 08. JUnit 테스트 실습

윤희빈·2026년 7월 23일

Eclipse 설치 및 JUnit 실습 (5/26)

  1. 이클립스 설치
  2. jdk 설치
  3. 이클립스 실행
  4. JUnit 실습
    1. 자바 프로젝트 생성
    2. java 패키지 생성
    3. 프로젝트 → file → 프로퍼티 → 라이브러리 → junit

그냥 인텔리제이 사용해도 됨.

import java.util.HashSet;
import java.util.Set;

public class StudentManager {

    private Set<String> students = new HashSet<>();

    //학생 추가
    public void addStudent(String name) {
        if (students.contains(name)) {
            throw new IllegalArgumentException("이미 존재하는 학생입니다: " + name);
        }
        students.add(name);
    }

    //학생 제거
    public void removeStudent(String name) {
        if (!students.contains(name)) {
            throw new IllegalArgumentException("존재하지 않는 학생입니다: " + name);
        }
        students.remove(name);
    }
    //학생 조회(boolean타입 반환)
    public boolean hasStudent(String name) {
        return students.contains(name);
    }
}
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;

import static org.junit.jupiter.api.Assertions.*;

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class StudentManagerTest {

    static StudentManager manager;

    @BeforeAll
    static void setUp() {
        manager = new StudentManager();
    }

    @Test
    @Order(1)
    void addStudent() {
        manager.addStudent("희빈");
        assertTrue(manager.hasStudent("희빈"));
    }

    @Test
    @Order(2)
    void removeStudent() {
        manager.removeStudent("희빈");
        assertFalse(manager.hasStudent("희빈"));
    }

    @Test
    @Order(3)
    void duplicateException() {
        manager.addStudent("희빈");

        assertThrows(IllegalArgumentException.class, () -> {
            manager.addStudent("희빈");
        });
    }

    @Test
    @Order(4)
    void removeNonExistingException() {
        assertThrows(IllegalArgumentException.class, () -> {
            manager.removeStudent("없는학생");
        });
    }
}
profile
비니비니히비니의 정리블로그

0개의 댓글