일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 개발자스터디
- 컴퓨터개론
- 개인공부
- 중심사회
- 소프트웨어
- MySQL
- java
- 백준
- 스파르타코딩클럽
- 자바
- 내일배움캠프
- Flutter
- til
- wil
- 코딩테스트
- 운영체제
- 항해
- 국비
- 스파르타내일배움캠프TIL
- Spring
- 부트캠프
- 스파르타내일배움캠프WIL
- Python
- 컴퓨터구조론 5판
- 개발자블로그
- 스파르타내일배움캠프
- 99일지
- 99클럽
- 프로그래머스
- AWS
- Today
- Total
컴공생의 발자취
단위 테스트란 무엇일까? 본문
2024.06.12.(수)
💡 오늘의 학습 키워드
- Spring 심화주차 1주차 -
kakao 동의항목 이메일 선택
SimpleJpaRepository(save)
@DisplayName
@Nested
@TestMethodOrder & @Order
@RepeatedTest
@ParameterizedTest & @ValueSource
assert 메소드
given - when - then 패턴
kakao 동의항목 이메일 선택
Kakao 동의항목에서 이메일을 선택하려고 보니
아래 사진과 같이 '카카오계정(이메일)' 부분이 권한이 없다고 나와있었다...
1. '개인정보 동의항목 심사 신청'을 클릭한다.
2. '비즈 앱 전환'을 클릭한다.
3. '개인 개발자 비즈 앱 전환'을 클릭한다.
4. 그러면 아래와 같이 개인 개발자 비즈 앱 전환 창이 뜨는데
비즈 앱 전환 목적을 '이메일 필수 동의'로 설정하고 전환 버튼을 클릭한다.
5. 아래의 사진처럼 'Biz'가 추가되었다면 성공!
SimpleJpaRepository(save)
: save는 상황에 따라 저장된 정보가 없을 경우 persist(저장)하고 있을 경우 merge(수정)한다.
@DisplayName
: 테스트의 내용을 한눈에 알아볼 수 있게 네이밍 해줄 때
@Test
@DisplayName("테스트의 내용을 한눈에 알아볼 수 있게 네이밍 해줄 때")
void test1() {
System.out.println("테스트 내용 빠르게 파악");
}
@Nested
: 주제 별로 테스트를 그룹지어서 파악하기 좋다.
@Nested
@DisplayName("주제 별로 테스트를 그룹지어서 파악하기 좋습니다.")
class Test1 {
@Test
@DisplayName("Test1 - test1()")
void test1() {
System.out.println("Test1.test1");
}
@Test
@DisplayName("Test1 - test2()")
void test2() {
System.out.println("Test1.test2");
}
}
@TestMethodOrder & @Order
: 테스트 순서 지정
@Nested
@DisplayName("주제 별로 테스트를 그룹지어서 파악하기 좋습니다.")
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class Test1 {
@Order(1)
@Test
@DisplayName("Test1 클래스")
void test() {
System.out.println("\nTest1 클래스");
}
@Order(3)
@Test
@DisplayName("Test1 - test1()")
void test1() {
System.out.println("Test1.test1");
}
@Order(2)
@Test
@DisplayName("Test1 - test2()")
void test2() {
System.out.println("Test1.test2");
}
}
@RepeatedTest
: 테스트용 반복문
@RepeatedTest(value = 5, name = "반복 테스트 {currentRepetition} / {totalRepetitions}")
// 현재 반복 횟수/총 실행 횟수
@ParameterizedTest & @ValueSource
: 파라미터 값 활용하여 테스트 하기
@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4, 5, 6, 7, 8, 9})
assert 메소드
// assertEquals(예상값, 결과값, 메시지)
assertEquals(2.5, result, () -> "연산자 혹은 분모가 0이 아닌지 확인해보세요!"); //같은지 확인
assertNotEquals(2.5, result); // 다른지 확인
assertTrue(calculator.validateNum(9)); // True 확인
assertFalse(calculator.validateNum(0)); // False 확인
assertNotNull(result1); // Null이 아닌지 확인
assertNull(result2); // Null인지 확인
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> calculator.operate(5, "?", 2));
assertEquals("잘못된 연산자입니다.", exception.getMessage());
assertThrow(예상하는 클래스 타입, 실제 실행 클래스)
// "잘못된 연산자입니다" : IllegalArgumentException 의 값
given - when - then 패턴
- given : 테스트하고자 하는 대상을 실제로 실행하기 전에 테스트에 필요한 값들을 미리 선언해두는 것
- when : 테스트하고자 하는 대상을 실제로 실행시키는 것
- then : 어떤 특정한 행동 때문에 발생할 것이라고 예상되는 결과에 대해 예측하고 맞는지 확인
// case 1 : given - when - then
@Test
@DisplayName("계산기 연산 성공 테스트")
void test1() {
// given
int num1 = 5;
String op = "/";
int num2 = 2;
// when
Double result = calculator.operate(num1, op, num2);
// then
assertNotNull(result);
assertEquals(2.5, result);
}
// case 2 : given - when & then
@Test
@DisplayName("계산기 연산 실패 테스트 : 연산자가 잘못됐을 경우")
void test1_2() {
// given
int num1 = 5;
String op = "?";
int num2 = 2;
// when - then
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> calculator.operate(5, "?", 2));
assertEquals("잘못된 연산자입니다.", exception.getMessage());
}
* Assertions 메소드
오늘의 궁금증
- 더티체킹에 대해... ?
항상 까먹는 나의 다짐👊
예전에 강의도 했었고 매번 이게 뭐지? 했었는데
항상 까먹는다... 내일은 기필코 알아본다!
오늘의 회고
- 12시간 중 얼마나 몰입했는가?
오늘 오전에는 밀린 TIL 작성하고
점심 먹고는 Spring 심화 강의 듣고 중간에 수준별 실시간 강의 들었다!
저녁 시간에는 독서모임하는 거 책을 다 못 읽어서 책을 읽었다.
적고보니 뭔가 열심히 한 것 같으니 그래도 8 - 9시간 정도는 몰입하지 않았나 하는 생각이든다.
- 오늘의 생각
새로운 팀원들을 만나서 사진도 찍고📸✨..
팀 노션도 기깔나게 꾸며서 매우 만족한다.
시간이 지남에 따라 실시간으로 힘들어해하는 우리 팀원들.. 화이팅해요!
우리팀에 TIL 우수자 나올 것 같은 사람이 2명이나 있다!!!
진짜 넘사야.. 이건 불공평해ㅠ 그러니까 여기에 링크를 걸어놔야지..
아무튼.. 다 같이 수료하고도 저희 친하게 지내요😆
오늘의 TMI : kakao 동의항목 이메일 선택.. 슬랙 공지방에 매니저님이 올려주셨더라...
- 내일 학습할 것은 무엇인지
일단 오전 중에는 지난 주 WIL 작성하고.. 강의를 다 들으려고 한다.
오후에는 과제 살펴본 후 시작하는 게 목표!
중간 중간에 개발 관련 책 좀 읽어야지
개발 관련 책은 읽고 따로 카테고리 만들어서 좀 정리해야겠다.
일단, 나~~~~~~~~~중에???
'💚 Spring' 카테고리의 다른 글
데이터베이스(H2, JDBC 드라이버, Query Mapper)및 MyBatis (0) | 2024.06.27 |
---|---|
통합 테스트와 Spring AOP(어드바이스, 포인트컷) (0) | 2024.06.14 |
Entity 연관 관계 (0) | 2024.05.23 |
ResponseEntity 및 ExceptionHandler (0) | 2024.05.21 |
Entity 상태 및 MySQL CLC 명령어 (1) | 2024.05.17 |