From e64cb79812c1c4a0c124270eae3b547746468fb0 Mon Sep 17 00:00:00 2001 From: truelightwater Date: Thu, 6 Apr 2023 12:07:23 +0900 Subject: [PATCH 1/3] =?UTF-8?q?String=20=ED=81=B4=EB=9E=98=EC=8A=A4?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=9C=20=ED=95=99=EC=8A=B5=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/study/StringTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/test/java/study/StringTest.java b/src/test/java/study/StringTest.java index 43e47d90b..2817a6a73 100644 --- a/src/test/java/study/StringTest.java +++ b/src/test/java/study/StringTest.java @@ -10,4 +10,21 @@ void replace() { String actual = "abc".replace("b", "d"); assertThat(actual).isEqualTo("adc"); } + + @Test + void split() { + String[] values = "1,2".split(","); + assertThat(values).containsExactly("1","2"); + + values = "1".split(","); + assertThat(values).contains("1"); + } + + @Test + void subString() { + String input = "(1,2)"; + String substring = input.substring(1, input.length() - 1); + assertThat(substring).isEqualTo("1,2"); + + } } From 142c1e1382a43bdda3f57d0a7dfbe2635360abb1 Mon Sep 17 00:00:00 2001 From: truelightwater Date: Thu, 6 Apr 2023 12:57:49 +0900 Subject: [PATCH 2/3] =?UTF-8?q?String=20=ED=81=B4=EB=9E=98=EC=8A=A4?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=9C=20=ED=95=99=EC=8A=B5=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/study/StringTest.java | 32 ++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/test/java/study/StringTest.java b/src/test/java/study/StringTest.java index 2817a6a73..e85a4af11 100644 --- a/src/test/java/study/StringTest.java +++ b/src/test/java/study/StringTest.java @@ -1,8 +1,9 @@ package study; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; public class StringTest { @Test @@ -25,6 +26,35 @@ void subString() { String input = "(1,2)"; String substring = input.substring(1, input.length() - 1); assertThat(substring).isEqualTo("1,2"); + } + + // StringIndexOutOfBoundsException: 배열에 할당되지 않은 메모리(인덱스)에 접근했을때 뜨는 에러문 + @Test + @DisplayName("특정 위치의 문자를 가져올 때 위치 값을 벗어나면 StringIndexOutOfBoundsException") + void charAt() { + String input = "abc"; + int index = 3; + + assertThatExceptionOfType(IndexOutOfBoundsException.class) + .isThrownBy(() -> { + input.charAt(index); + // withMessageMatching 에러 문장을 정확히 기재해야 통과 + }).withMessageMatching("String index out of range: 3"); + } + + + // Expecting code to raise a throwable. : isInstanceOf() 함수에 입력된 오류가 발생하지 않을 경우 뜨는 에러 + @Test + @DisplayName("특정 위치의 문자를 가져올 때 위치 값을 벗어나면 StringIndexOutOfBoundsException") + void charAt2() { + String input = "abc"; + int index = 10; + assertThatThrownBy(() -> { + input.charAt(index); + }).isInstanceOf(StringIndexOutOfBoundsException.class) // 예상되는 에러를 지정하는 함수 + .hasMessageContaining("%d", index); // 예상되는 에러에 나오는 메세지에 들어있을 내용을 적는다. 맞으면 성공, 아니면 실패 } + + } From ef1f271f44d67a04f1fbdced1444fc6ae94348f3 Mon Sep 17 00:00:00 2001 From: truelightwater Date: Mon, 1 May 2023 19:27:08 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Set=20Collection=20=EB=8C=80=ED=95=9C=20?= =?UTF-8?q?=ED=95=99=EC=8A=B5=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/study/SetTest.java | 53 +++++++++++++++++++++++++++++ src/test/java/study/StringTest.java | 6 ++-- 2 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 src/test/java/study/SetTest.java diff --git a/src/test/java/study/SetTest.java b/src/test/java/study/SetTest.java new file mode 100644 index 000000000..e69a37e21 --- /dev/null +++ b/src/test/java/study/SetTest.java @@ -0,0 +1,53 @@ +package study; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; +import org.junit.jupiter.params.provider.ValueSource; + +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.HashSet; +import java.util.Set; + +public class SetTest { + private Set numbers; + + @BeforeEach + void setUp() { + numbers = new HashSet<>(); + numbers.add(1); + numbers.add(1); + numbers.add(2); + numbers.add(3); + } + + @Test + void sizeTest() { + int size = numbers.size(); + assertThat(size).isEqualTo(3); + } + + @Test + void contains() { + assertThat(numbers.contains(1)).isTrue(); + assertThat(numbers.contains(2)).isTrue(); + assertThat(numbers.contains(3)).isTrue(); + } + + @ParameterizedTest + @ValueSource(ints = {1, 2, 3}) + void contains2(int input) { + assertTrue(numbers.contains(input)); + } + + + @ParameterizedTest + @CsvSource(value = {"1:true", "2:true", "3:true", "4:false", "5:false"}, delimiter = ':') + void contains3(int input, boolean expected) { + assertThat(numbers.contains(input)).isEqualTo(expected); + } +} + diff --git a/src/test/java/study/StringTest.java b/src/test/java/study/StringTest.java index e85a4af11..af87abb7a 100644 --- a/src/test/java/study/StringTest.java +++ b/src/test/java/study/StringTest.java @@ -32,13 +32,13 @@ void subString() { @Test @DisplayName("특정 위치의 문자를 가져올 때 위치 값을 벗어나면 StringIndexOutOfBoundsException") void charAt() { - String input = "abc"; + String input = "abc"; // String.length 의 길이는 2 이다. int index = 3; assertThatExceptionOfType(IndexOutOfBoundsException.class) .isThrownBy(() -> { input.charAt(index); - // withMessageMatching 에러 문장을 정확히 기재해야 통과 + // (중요) withMessageMatching 에러 문장을 정확히 기재해야 통과 }).withMessageMatching("String index out of range: 3"); } @@ -53,7 +53,7 @@ void charAt2() { assertThatThrownBy(() -> { input.charAt(index); }).isInstanceOf(StringIndexOutOfBoundsException.class) // 예상되는 에러를 지정하는 함수 - .hasMessageContaining("%d", index); // 예상되는 에러에 나오는 메세지에 들어있을 내용을 적는다. 맞으면 성공, 아니면 실패 + .hasMessageContaining("%d", index); // 예상되는 에러에 나오는 메세지에 들어있을 내용을 적는다. 맞으면 성공, 아니면 실패 }