https://shinsunyoung.tistory.com/99?category=327358

🔐 들어가며

안녕하세요! 이번 포스팅에서는 JUnit4에서 사용할 수 있는 JUnitParams에 대해 소개해드리려고 합니다.

// 만약 위 세 개의 테스트를 하나의 테스트로 돌릴 수 있다면?
@Test
public void positiveTest1() {
    Positive positive = new Positive(1);
    assertThat(positive.isPositive()).isEqualTo(true);
}

@Test
public void positiveTest2() {
    Positive positive = new Positive(5);
    assertThat(positive.isPositive()).isEqualTo(true);
}

@Test
public void positiveTest3() {
    Positive positive = new Positive(-1);
    assertThat(positive.isPositive()).isEqualTo(false);
}

JUnitParams를 사용하면 위 테스트들과 같이 값만 다르고 나머지 로직이 똑같은 테스트들을 테스트 하나로 여러 값을 반복해서 돌릴 수 있습니다. 전체 코드는 Github에서 확인이 가능합니다.

⚠️ 해당 포스팅은 Junit4를 기준으로 작성되었습니다. (Junit5에서는 사용법이 바뀌었습니다.)

📚 사전준비

1. 의존성 추가

build.gradle

testCompile("pl.pragmatists:JUnitParams:1.1.0")

JUnitParams를 사용하기 위해 의존성을 추가해줍니다.

💻 구현

1. 테스트용 도메인 및 테스트 코드 만들기

Positive.class

public class Positive {

  private int number;
  private boolean isPositive;

  public boolean isPositive() {
    return isPositive;
  }

  public Positive(int number) {
    this.number = number;
    this.isPositive = number > 0;
  }
}

테스트용 도메인으로 Positive라는 클래스를 만들어주었습니다. 생성할 때 입력받는 숫자(number)가 양수라면 isPositivetrue를, 음수라면 false를 반환합니다.

PositiveTest.class

@RunWith(JUnitParamsRunner.class)
public class PositiveTest {
}

JunitParams를 사용하기 위해서는 @RunWithJunitParamsRunner를 추가해주어야합니다.