[우아한테크코스] 1일차 TIL
git 명령어
오랜만에 페어프로그래밍 덕분에 명령어를 사용한 김에 명령어 정리 :)
- 모든 항목을 스테이지에 업로드: git add .
- 원하는 항목을 스테이지에 업로드: git add 파일위치
- 커밋 메시지와 함께 커밋: git commit -m “원하는 메시지” (메시지 여러 줄에 하고 싶으면 따옴표 안 닫고 띄우기)
- 푸시: git push remote이름 branch이름
- 가장 최근 commit 취소: git reset HEAD^
JUnit
junit 4.4부터는 assert~~ 을 이용해 단위 테스트를 진행한다.
원치 않는 경우에 예외처리하는 테스트이다.
- assertThat(
).contains()라면 포함하지 않는 경우 - assertThat(
).containsExactly()라면 모든 것을 완벽히 포함하지 않는 경우 -
assertThat(
).isEqualTo()라면 일치하지 않는 경우 - assertEquals(expected, actual)로 두 값이 다른 경우
- assertFalse(expected.equals(actual))로 값이 같은 경우
- assertTrue, assertNull, assertNotNull, assertSame …
올바르게 예외처리가 되는지 확인하는 방법
- 원하는 메시지가 올바르게 출력되는지
assertThatThrownBy(() -> { // ... }).isInstanceOf(IndexOutOfBoundsException.class) .hasMessageContaining("Index: 2, Size: 2");
- 이러한 타입의 에러가 올바른 형식의 메시지와 함께 출력되는지
assertThatExceptionOfType(IndexOutOfBoundsException.class) .isThrownBy(() -> { // ... }).withMessageMatching("Index: \\d+, Size: \\d+");
\d는 \d를 올바르게 인식시키기 위한 표현, +는 0 이상의 정수를 표현하기 위한 정규표현식
test
- @Test 어노테이션으로 주고, assert~~로 테스트
- 테스트 코드에서 @BeforeEach 하면 모든 테스트가 실행되기 전 초기 설정
- @ParameterizedTest 어노테이션의 경우 @ValueSource, @CsvSource 등으로 인자 전달
@ParameterizedTest @ValueSource(strings = {"", " "}) void isBlank_ShouldReturnTrueForNullOrBlankStrings(String input) { assertTrue(Strings.isBlank(input)); }
@ParameterizedTest @CsvSource(value = {"test:test", "tEst:test", "Java:java"}, delimiter = ':') void toLowerCase_ShouldGenerateTheExpectedLowercaseValue(String input, String expected) { String actualValue = input.toLowerCase(); assertEquals(expected, actualValue); }