TIL
TIL_20221110
번잔중
2022. 11. 10. 23:53
오늘 할 일
🛟 코드 스테이츠 56일차
[Spring MVC] 테스팅
- Daily Coding
- Mockito 개요 및 실습
- Tdd
다른거
- 1일 1커밋
- 복습
- 운동... 가능할까...?
오늘 배운 것
🚧 [Spring MVC] 테스팅
Mockito 개요 및 실습
- Mock은 가짜 객체를 의미한다. 단위 테스트나 슬라이스 테스트 등에 Mock 객체를 사용하는 것을 Mocking이라고 한다.
- Mockito는 Spring Framework 자체적으로 지원하고 있는 Mocking 라이브러리이다. Mock 객체를 생성하고, 해당 Mock 객체가 진짜처럼 동작하게 하는 역할을 한다.
- Mockito의 Mocking 기능을 이용해서 테스트하고자 하는 대상에서 다른 영역(다른 계층 또는 외부 통신이 필요한 서비스 등)을 단절시켜 오로지 테스트 대상에만 집중할 수 있다.
- @MockBean 애너테이션은 Application Context에 등록되어 있는 Bean에 대한 Mockito Mock 객체를 생성하고 주입해주는 역할을 한다.
- Junit에서 Spring을 사용하지 않고 순수하게 Mockito의 기능만을 사용하기 위해서는 @ExtendWith(MockitoExtension.class)를 클래스 레벨에 추가해야 한다.
- @Mock 애너테이션을 추가하면 해당 필드의 객체를 Mock 객체로 생성한다.
- @Mcok 애너테이션을 통해 생성된 Mock 객체는 @InjectMocks 애너테이션을 추가한 필드에 주입된다.
TDD
- 테스트를 먼저 하고 구현은 그 다음에 하는 것이다. 일반적으로는 선 구현 후 테스트를 진행한다.
- TDD는 모든 조건에 만족하는 테스트를 먼저 진행한 뒤에 조건에 만족하지 않는 테스트를 단계적으로 진행하면서 실패하는 테스트를 점진적으로 성공시켜 나간다.
- TDD는 테스트 실행 결과가 “failed”인 테스트 케이스를 지속적으로 그리고 단계적으로 수정하면서 테스트 케이스 실행 결과가 “passed”가 되도록 만든다.
- TDD는 테스트가 “passed” 될 만큼의 코드만 우선 작성한다.
- TDD의 개발 방식은 '실패하는 테스트 → 실패하는 테스트를 성공할 만큼의 기능 구현 → 성공하는 테스트 → 리팩토링 → 실패하는 테스트와 성공하는 테스트 확인' 이라는 흐름을 반복한다.
다른거
- 1일 1커밋
코플릿 문제 37번 radixSort를 풀었습니다. radixSort는 기수 정렬입니다. 문제에도 나와 있듯이 기수 정렬을 위해서는 계수 정렬을 할 수 있어야 합니다.
Coplit 37 radixSort - 코드는 비공개입니다❗️
- 복습
오늘 실습한 내용을 복습했습니다! 아직 Mock에 대한 내용이 익숙하지는 않은데, 더 자주하면 나아지겠죠!
- 운동은 실패
최근 들어 잠을 못자다보니 운동을 어떻게 할지 고민했습니다만 잠을 못자고 하는 운동은 오히려 독이기 때문에 운동은 잠시 쉬어가는 것으로 하겠습니다.
느낀점
- Mockito 실습을 하고 솔루션 코드를 보니 어지러웠다. 배운 내용 이상의 것이 나올때마다 당황스럽긴 하지만 더 효율적인 코드일테니 익숙해져보려 노력해야겠다.
- 피곤한 상태가 몇 주간 지속되다보니 오늘 아침에는 라이브 수업을 참여하지 못했다. 깊은 곳에서부터 올라오는 짜증과 피곤함이 겹쳐서 힘든 하루였다.
- 오늘은 조금 일찍 잠들어야겠다.
내일 할 일
📖 코드 스테이츠 57일차
[Spring MVC] API 문서화(Documentation)
- Daily Coding
- API 문서화 개요
- Spring Restdocs
다른거
- 1일 1커밋
- 복습