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커밋
  • 복습