# Parameterized
@Parameterized Tests
@ParameterizedTest 를 사용하면 하나의 테스트 메소드로 여러 개의 파라미터에 대해서 테스트 가능 의존성 추가 Gradle Maven @ParameterizedTest @ValueSource test 메소드 실행 당 하나의 인수(argument)만 전달할때 사용 가능 리터럴 값의 단일 배열을 지정 short, byte, int, long, float, double, char, java.lang.String, java.lang.Class String int Null and Empty Sources @NullSource : 파라미터 값으로 null @EmptySource : 파라미터 값으로 empty @NullAndEmptySource : 파라미터 값으로 null과 empty를 함께 제공 @ValueSource 함께 사용 가능 @EnumSour
TDD(2)
주관적인 내용이 들어가 있습니다. TDD 방법 정답인지는 모르겠지만 TDD에 익숙해지기 위해서 아래와 같은 방식으로 진행해야겠다. 큰 로직을 작게 나누어 검사 큰 로직 ex) 작은 로직1 테스트 코드 for 작은 로직1 → 실제 코드 for 작은 로직1 → 리팩토링 → (반복) ex) 작은 로직2 테스트 코드 for 작은 로직2 → 실제 코드 for 작은 로직2 → 리팩토링 → (반복) Private method도 테스트해야하는가? Private method를 잘 테스트하는 것 만으로 해당 private method의 무결성을 보장할 수 있다. 하지만 개발자가 불안하다고 느끼면 짜는것이 좋다 private 메소드를 public으로 잠시 바꾸어 테스트한다. 애초에 과연 private일 필요가 있는가? 없다면 public으로 열어도 될것 같다 리플렉션을 통해 테스트한다
파라미터 테스트
다수의 파라미터를 사용해서 테스트해야하는 경우, junit4(본 문서 기준)를 이용해 파라미터화 테스트를 진행한다. Array에 기댓값, 테스트 인풋값을 넣어서 돌리는 테스트인데, 테스트 클래스에 내부 클래스들을 만들어서 파라미터 테스트를 진행하는 것이 특징이다. 이걸 사용하면 String[]을 이용해 for 문을 돌려 파라미터를 테스트하는 것보다 더 개선된 코드를 짤 수 있다. 아, 그리고 한 번에 외부 클래스를 실행하면 안에 선언되어있는 내부 클래스들을 실행하고 싶을 땐 를 선언해준다. 그러면 통으로 테스트 가능~ 참고 문서 https://binarythink.github.io/junit4-parameterized-test https://yanghun0070.gitbooks.io/spring/content/unit.html https://junit.org/junit4/javadoc/latest/org/junit/experimental/runners/E