1. 첫번째 JUnit 테스트 만들기

2021. 8. 10. 11:08JAVA/JUNIT

1. JUnit의 기본 : 첫 번째 테스트 통과

학생(Sutdnet) 클래스는 이름과 4과목의 점수를 담은 정수형 리스트를 가지고 있습니다. 그리고 StudentScoreCalculator 클래스는 각각의 학생 클래스를 추가하는 Student 타입의 리스트를 가지고 있습니다.

본 글의 목적은 StudentScoreCalculator 클래스에 각각의 학생들의 평균을 구하고 평균들의 평균을 구하는 메서드를 구현합니다. 그리고 이렇게 구현한 메서드가 올바르게 작동하는지 JUnit 테스트를 생성하여 확인해봅니다.

 

 

step1 프로젝트 생성(iloveyouboss_01)

step2 패키지 및 클래스 생성

practice 패키지 생성

Student 클래스 생성

StudentScoreCalculator 클래스 생성

 

step3 Student 클래스 구현

package practice;

import java.util.ArrayList;
import java.util.List;

public class Student {
	private String name;
	private List<Integer> scores;
	
	public Student(String name){
		this.name = name;
		scores = new ArrayList<Integer>();
	}

	public void add(int score)
	{
		scores.add(score);	
	}

	public String getName() {
		return name;
	}

	public List<Integer> getScores() {
		return scores;
	}

}

step4 StudentScoreCalculator 클래스 구현

package practice;

import java.util.ArrayList;
import java.util.List;

public class StudentScoreCalculator {
	private List<Student> students = new ArrayList<Student>();
	
	public void add(Student student)
	{
		students.add(student);
	}
	
	public int arithmeticMean()
	{
		int sum = 0;
		for(Student s : students)
		{
			List<Integer> scores = s.getScores();
			int total = scores.stream().reduce(0, Integer::sum);
			sum += total / scores.size();	// 각각의 학생 평균 누적
		}
		return sum / students.size();
	}
}

step5 test 디렉터리 생성

step6 JUnit 테스트 클래스 생성

  1. Package Explorer에 있는 StudentScoreCalculator.java 항목을 선택합니다.
  2. 마우스 오른쪽 버튼을 누르면 컨텍스트 메뉴가 나옵니다.
  3. New > JUnit Test Case 메뉴를 선택합니다.

step7 StudentScoreCalculatorTest 클래스 구현

package practice;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.*;

import org.junit.Test;

public class StudentScoreCalculatorTest {

	// 각각의 학생의 4과목에 점수를 입력후 4과목의 평균들의 평균을 구한다.
	@Test
	public void answerArithmeticMeanOfForNumbers() {
		StudentScoreCalculator cal = new StudentScoreCalculator();
		
		Student student1 = new Student("kim");
		student1.add(100);
		student1.add(100);
		student1.add(100);
		student1.add(100);
		
		Student student2 = new Student("lee");
		student2.add(90);
		student2.add(90);
		student2.add(90);
		student2.add(90);
		
		cal.add(student1);
		cal.add(student2);
		
		int actualResult = cal.arithmeticMean();
		
		assertThat(actualResult, equalTo(95));
	}

}

step8 JUnit 실행

step9 테스트 실행 결과 확인

실행 결과 Runs : 1/1로 모든 테스트가 통과된것을 확인할 수 있습니다.

 

References

자바와 JUnit을 활용한 실용주의 단위 테스트

'JAVA > JUNIT' 카테고리의 다른 글

AssertJ 테스트시 객체의 동등성(Equality) 검증 방법  (0) 2024.04.07
3.2 예외를 기대하는 세 가지 방법  (0) 2021.08.13
3.1 JUnit 단언  (0) 2021.08.13
2.1 JUNIT 테스트 고려사항 구현  (0) 2021.08.11
2. JUNIT 사용  (1) 2021.08.11