Java Student 클래스 유닛 테스트

JavaBeginner
지금 연습하기

소개

이 프로젝트에서는 JUnit 테스트 프레임워크를 사용하여 간단한 Student 클래스에 대한 유닛 테스트를 작성하는 방법을 배우게 됩니다. 이 프로젝트는 테스트 환경 설정, Student 클래스의 getset 메서드에 대한 테스트 케이스 작성, 구현의 정확성 검증을 포함합니다.

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • JUnit 의존성을 프로젝트에 임포트하는 방법
  • StudentTest 클래스를 설정하고 테스트를 위해 Student 객체를 초기화하는 방법
  • Student 클래스의 get 메서드에 대한 테스트 케이스를 작성하는 방법
  • Student 클래스의 set 메서드에 대한 테스트 케이스를 작성하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • Maven 과 JUnit 을 사용하여 테스트 환경을 설정합니다.
  • Java 클래스에 대한 효과적인 유닛 테스트를 작성합니다.
  • 테스트 케이스를 사용하여 구현의 정확성을 검증합니다.
  • 유지 관리 가능하고 신뢰할 수 있는 코드를 작성하기 위한 모범 사례를 적용합니다.

JUnit 의존성 가져오기

이 단계에서는 JUnit 의존성을 프로젝트에 임포트하는 방법을 배우게 됩니다.

  1. ~/project/StudentClass 디렉토리에 있는 pom.xml 파일을 엽니다.
  2. <dependencies> 섹션 안에 다음 의존성을 추가합니다:
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

이렇게 하면 JUnit 4 의존성이 프로젝트에 추가되어 유닛 테스트를 작성하고 실행하는 데 필요합니다.

✨ 솔루션 확인 및 연습

Student 테스트 클래스 설정

이 단계에서는 StudentTest 클래스를 설정하고 테스트를 위해 Student 객체를 초기화하는 방법을 배우게 됩니다.

  1. ~/project/StudentClass/src/test/java/com/labex 디렉토리에 있는 StudentTest.java 파일을 엽니다.
  2. 다음 @Before 어노테이션이 있는 메서드를 StudentTest 클래스에 추가합니다:
private Student studentTest;

@Before
public void setUp() {
    studentTest = new Student("Tom", "male", 25);
}

setUp() 메서드는 각 테스트 메서드 전에 실행되며, 주어진 이름, 성별 및 나이로 새로운 Student 객체를 생성합니다.

✨ 솔루션 확인 및 연습

Get 및 Set 메서드 테스트 작성

이 단계에서는 Student 클래스의 getset 메서드를 검증하기 위한 테스트를 작성합니다.

  1. 다음 테스트 메서드를 StudentTest 클래스에 추가합니다:
@Test
public void testGetName() {
    assertEquals("Tom", studentTest.getName());
}

@Test
public void testGetAge() {
    assertEquals(25, studentTest.getAge());
}

@Test
public void testGetSex() {
    assertEquals("male", studentTest.getSex());
}

이러한 테스트는 Student 클래스의 getName(), getAge(), 및 getSex() 메서드가 올바르게 작동하는지 확인합니다.

  1. 다음 테스트 메서드를 StudentTest 클래스에 추가합니다:
@Test
public void testSetName() {
    studentTest.setName("Jimmy");
    assertEquals("Jimmy", studentTest.getName());
}

@Test
public void testSetAge() {
    studentTest.setAge(26);
    assertEquals(25, studentTest.getAge()); // Age should remain unchanged
}

@Test
public void testSetSex() {
    studentTest.setSex("female");
    assertEquals("female", studentTest.getSex());
}

이러한 테스트는 Student 클래스의 setName(), setAge(), 및 setSex() 메서드가 올바르게 작동하는지 확인합니다.

✨ 솔루션 확인 및 연습

테스트 케이스 실행

테스트 케이스를 실행하려면 다음 단계를 따르세요:

  1. 터미널에서 다음 명령을 사용하여 StudentClass 프로젝트 디렉토리로 이동합니다:
cd ~/project/StudentClass/
  1. 다음 명령을 실행하여 테스트 케이스를 실행합니다:
mvn test

출력은 다음과 유사해야 합니다:

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.labex.StudentTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.099 s - in com.labex.StudentTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.237 s
[INFO] Finished at: 2024-05-12T12:23:30Z
[INFO] ------------------------------------------------------------------------

이러한 테스트는 getName, getAge, getSex, setName, setAge, 및 setSex와 같은 Student 클래스의 메서드가 어설션 (assertion) 을 통해 예상되는 동작을 검증함으로써 올바르게 작동하는지 확인합니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.