1. 첫번째 JUnit 테스트 만들기
2021. 8. 10. 11:08ㆍJAVA/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 테스트 클래스 생성
- Package Explorer에 있는 StudentScoreCalculator.java 항목을 선택합니다.
- 마우스 오른쪽 버튼을 누르면 컨텍스트 메뉴가 나옵니다.
- 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 |