You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// int[][] -> LIst<List<Integer>>privatestaticList<List<Integer>> twoDArrayToList(int[][] twoDArray) {
List<List<Integer>> result = newArrayList<>();
for (int[] array : twoDArray) {
List<Integer> list = toList(array);
result.add(list);
}
returnresult;
}
privatestaticList<Integer> toList(int[] array) {
returnArrays.stream(array).boxed().collect(Collectors.toList());
}
// 2DArray to List of List (1)public <T> List<T> twoDArrayToList(T[][] twoDArray) {
List<T> list = newArrayList<T>();
for (T[] array : twoDArray) {
list.addAll(Arrays.asList(array));
}
returnlist;
}
// 2DArray to List of List (2)public <T> List<T> twoDArrayToList2(T[][] twoDArray) {
returnArrays.stream(twoDArray) //'array' is two-dimensional
.flatMap(Arrays::stream)
.collect(Collectors.toList());
}
// String 2DArray to List of ListpublicList<List<String>> string2DArrayToList(String[][] twoDArray) {
returnArrays.stream(twoDArray)
.map(Arrays::asList)
.collect(Collectors.toList());
}
JUnit Test Code - assertThatThrownBy(), @ParameterizedTest, @valuesource, @CsvSource
@DisplayName("String의 charAt 메소드는 특정 위치를 벗어나면 예외를 발생한다")
@TestvoidcharAt_outOfIndex_test() {
assertThatThrownBy(() -> {
Stringstr = "abcd";
charch = str.charAt(10); })
.isInstanceOf(IndexOutOfBoundsException.class)
.hasMessageContaining("range: 10");
}
/** * 요구사항 2 * Set의 contains() 메소드를 활용해 1, 2, 3 의 값이 존재하는지를 확인하는 학습 테스트 구현 * 중복 코드 제거 -> JUnit의 ParameterizedTest 활용 */@ParameterizedTest@ValueSource(ints = {1, 2, 3})
voidset_contains_test(intelement) {
assertThat(numbers.contains(element)).isTrue();
}
/** * 요구사항 3 * 요구사항 2는 contains 메소드 결과 값이 true인 경우만 테스트가 가능 * 입력값에 따라 결과값이 다른 경우에 대한 테스트도 가능하도록 구현 * ex) 1, 2, 3 값은 contains 메소드 실행 결과 true이고 4,5 값은 false가 반환되는 테스트를 하나의 함수로 구현 * @CsvSource 활용 */@DisplayName("true, false 값을 같이 리턴한다")
@ParameterizedTest@CsvSource(value = {"1:true", "2:true", "3:true", "4:false", "5:false"}, delimiter = ':')
voidset_contains_true_false(intelement, booleanexpected) {
assertThat(numbers.contains(element)).isEqualTo(expected);
}
간단 회고
오늘부터 본격적으로 달리기 시작했다 !
아직 복습할 부분이 조금 남긴했지만, 틈틈히 보고 원래 계획에는 없었던 넥스트스텝의 자바 플레이그라운드과정을 오늘부터 듣고있다.
매일 꾸준히 일정 시간 이상 투자를 해서 학습할 계획이다.
원래 TDD 수업도 올해말이나 내년초쯤에 들을 계획이었으나, 저렴한 가격에 이러한 좋은 강의가 나오게 되어서 바로 구매하게 되었고,
오늘 좀 공부해본 결과 여러 테스트 코드에 대해 작성하는 법을 배울 수 있어서 좋은 것 같다.
퇴사를 하고 공부를 하니 확실히 개인 시간이 많아져서 좋지만, 밤이 되어 되돌아보면 하루가 너무 짧은 느낌이다 :(
언제 취업을 하게될지는 모르겠지만, 그 전까지 정말 후회없이 열심히 해서 많은 실력을 쌓고싶다 !
JuHyun419
changed the title
[20210607] (Java) 2DArray to List of List
[20210607] (Java) 2DArray to List of List, JUnit assertThatThrownBy(), @ParameterizedTest example
Jun 7, 2021
Java 2차원 배열 -> List<List>
JUnit Test Code - assertThatThrownBy(), @ParameterizedTest, @valuesource, @CsvSource
간단 회고
플레이 그라운드
The text was updated successfully, but these errors were encountered: