Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/auto-reviewer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Review Assign

on:
pull_request:
types: [opened, ready_for_review]

jobs:
assign:
runs-on: ubuntu-latest
steps:
- uses: hkusu/review-assign-action@v1
with:
assignees: ${{ github.actor }}
reviewers: ${{ vars.REVIEWERS }}
max-num-of-reviewers: 1
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
## [NEXTSTEP 플레이그라운드의 미션 진행 과정](https://github.com/next-step/nextstep-docs/blob/master/playground/README.md)

---
1. 피드백 강의 전까지 미션 진행
> 피드백 강의 전까지 혼자 힘으로 미션 진행. 미션을 진행하면서 하나의 작업이 끝날 때 마다 add, commit
> 예를 들어 다음 숫자 야구 게임의 경우 0, 1, 2단계까지 구현을 완료한 후 push. 개인 레포지토리, 개인 브랜치에서 진행.
1. 피드백 강의 전까지 미션 진행
- 피드백 강의 전까지 혼자 힘으로 미션 진행, 미션을 진행하면서 하나의 작업이 끝날 때 마다 add, commit
- `main` 미션 레포지토리를 본인의 로컬 저장소로 `clone` 하여 프로젝트 환경을 구성합니다.
- 예를 들어 다음 숫자 야구 게임의 경우 각 미션 별 `branch`를 `pull` 받은 후 미션을 해결 한 뒤 `PR`을 보냅니다.
- 코드 수정이 더 이상 일어나지 않을 경우 리뷰어를 설정하고 다음 미션을 진행 합니다.

![mission baseball](https://raw.githubusercontent.com/next-step/nextstep-docs/master/playground/images/mission_baseball.png)

---
2. 피드백 앞 단계까지 미션 구현을 완료한 후 피드백 강의를 학습한다.
2. 피드백 앞 단계까지 미션 구현을 완료한 후 피드백 강의를 학습합니다.

---
3. (임시로 만들어본 규칙입니다) 자신의 브랜치에 구현해둔 코드를 피드백을 참고해 수정해본다.
해당 코드를 본 레포지토리의 main으로 합병하는 PR을 요청해 팀원들의 피드백을 받는다.
3. 자신의 브랜치에 구현해둔 코드를 피드백을 참고해 수정해봅니다.
- 해당 코드를 본 레포지토리의 `main`으로 합병하는 `PR`을 요청해 팀원들의 피드백을 받습니다.

62 changes: 62 additions & 0 deletions src/test/java/study/SetTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package study;

import jdk.internal.joptsimple.internal.Strings;
import org.assertj.core.internal.Integers;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
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 java.util.HashSet;
import java.util.Set;

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class SetTest {
private Set<Integer> numbers;

@BeforeEach
void setUp() {
numbers = new HashSet<>();
numbers.add(1);
numbers.add(1);
numbers.add(2);
numbers.add(3);
}

@Test
@DisplayName("HashSet의 크기 확인")
void testHashSetSize() {
assertThat(numbers.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})
@DisplayName("1,2,3 존재하는지 확인")
void testContainValue(int number) {
assertTrue(numbers.contains(number));
}

@ParameterizedTest
@CsvSource(value = {
"1, true",
"2, true",
"3, true",
"4, false",
"5, false"}, delimiter = ',')
@DisplayName("존재하는 값은 true, 아닌 값은 false 반환하는지 확인")
void testIsContainValue(int number, boolean expectedResult) {
assertThat(numbers.contains(number)).isEqualTo(expectedResult);
}
}
35 changes: 35 additions & 0 deletions src/test/java/study/StringTest.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,48 @@
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.AssertionsForClassTypes.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertThrows;

public class StringTest {
@Test
void replace() {
String actual = "abc".replace("b", "d");
assertThat(actual).isEqualTo("adc");
}

@Test
@DisplayName("\"1,2\"을 ,로 split 했을 때 1과 2로 잘 분리되는지 검사")
void split1() {
String[] actual = "1,2".split(",");
assertThat(actual).contains("1","2");
}

@Test
@DisplayName("\"1\"을 ,로 split 했을 때 1만을 포함하는 배열이 반환되는지 검사")
void split2() {
String[] actual = "1".split(",");
assertThat(actual).containsExactly("1");
}

@Test
@DisplayName("(1,2) 값에서 () 제거 후 반환 검사")
void substring() {
String actual = "(1,2)";
String result = actual.substring(1, actual.length() - 1);
assertThat(result).isEqualTo("1,2");
}

@Test
@DisplayName("문자열의 특정 위치의 문자를 가져올 때, 인덱스를 벗어나면 예외 발생")
void charAt() {
String actual = "abc";
assertThatThrownBy(() -> {
actual.charAt(20);
}).isInstanceOf(IndexOutOfBoundsException.class)
.hasMessageContaining("String index out of range");
}
}