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

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("없는학생");
});
}
}