[java] JUnitParams를 활용한 암호 히스토그램 테스트 방법은 어떻게 되나요?

먼저, JUnitParams를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 종속성을 추가하세요:

<dependency>
  <groupId>pl.pragmatists</groupId>
  <artifactId>JUnitParams</artifactId>
  <version>1.1.1</version>
  <scope>test</scope>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가하세요:

testImplementation 'pl.pragmatists:JUnitParams:1.1.1'

테스트 클래스를 작성하기 전에, 암호 히스토그램을 생성하는 메서드가 있는 클래스가 필요합니다. 예를 들어, 다음과 같은 Histogram 클래스를 가정해 보겠습니다:

public class Histogram {
  
  public int[] generateHistogram(String password) {
    // 암호 히스토그램을 생성하는 로직 작성
  }
  
}

이제 HistogramTest 클래스로 테스트를 작성합니다. JUnitParams의 @Parameters 애너테이션을 사용하여 테스트에 다양한 암호를 전달할 수 있습니다. 각 암호에 대해 예상 결과를 지정하고, 테스트할 메서드의 매개변수에 암호를 전달합니다.

import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(JUnitParamsRunner.class)
public class HistogramTest {

  private Histogram histogram = new Histogram();

  @Test
  @Parameters({"password1, 4", "password2, 5", "password3, 6"})
  public void testGenerateHistogram(String password, int expected) {
    int[] histogramData = histogram.generateHistogram(password);
    int actual = histogramData.length;
    Assert.assertEquals(expected, actual);
  }
}

위의 예제에서는 @Parameters 애너테이션을 사용하여 세 개의 테스트 암호를 전달하고, testGenerateHistogram 메서드에서 예상 결과와 실제 결과를 비교합니다. 테스트 실행 시 각 암호에 대해 테스트가 수행되며, 예상 결과와 일치하는지 확인합니다.

이렇게 JUnitParams를 사용하여 암호 히스토그램을 테스트할 수 있습니다. JUnitParams를 사용하면 한 줄의 코드로 여러 경우의 수를 테스트할 수 있으며, 테스트 케이스를 간결하고 가독성 좋게 작성할 수 있습니다.

참고 자료