개발자 준비/TDD3 Mockito 알아보기 Mock이 뭐고 Mockito는 뭐지? Mockito는 개발자가 동작을 직접 제어할 수 있는 가짜(Mock) 객체를 지원하는 테스트 프레임워크입니다. 앞서 말했듯이 개발을 하다보면 객체들간의 의존성이 존재하여 테스트의 어려움이 있습니다. 이러한 문제를 해결하기 위해 Mock Object를 만들어 주입시켜주는데 이를 지원해주는 라이브러리가 Mockito입니다. 왜 Mock을 쓰나요? 실제 사용하는 모듈을 사용하지 않고 실제의 모듈을 "흉내"내는 "가짜" 모듈을 Mock이라고 합니다. 실제 모듈을 사용하여 테스트를 진행하기 껄끄러운 경우 대신 생성해 테스트에 사용하게 되는데요. 예를들어 ‘데이터 베이스 모듈 테스트’ 를 예로 들면, 실제 모듈을 사용해서 테스트를 진행한다면, 테스트 내용이 실제 데이터 베이스.. 2022. 11. 8. 어떻게 하면 테스트 주도 개발을 잘할까? 목차 왜 테스트 주도 개발을 해야할까? 테스트 주도 개발 순서 기능 목록은 어떻게 작성해야할까? 테스트가 어려운 설계 특징 및 대처법 테스트 코드 골격 테스트 종류 왜 테스트 주도 개발을 해야 하는가? 테스트 주도 개발은 내 코드의 품질과 유연함을 적은 비용으로 향상시킬 수 있는 강력한 도구 입니다 테스트가 가능한 설계 구조에는 SOLID, 클린코드, 방어코드 등이 포함되기 때문에 코드 품질을 자연스럽게 확보할 수 있습니다 TDD를 하는 과정에서 작성한 테스트 코드는 CI/CD에서 자동화 테스트로 사용되어 버그가 배포되는 것을 막아주고 이는 소프트웨어 품질이 저하되는것을 방지합니다 구체적인 예를 통해 모호함을 없애고 정확한 코드를 추적할 수 있게 해주며, 코드에 대한 빠른 피드백으로 안전한 리펙토링을 보.. 2022. 11. 8. MockMVC + Junit으로 컨트롤러 테스트코드 만들기 (feat. PostMan 수동 테스트 탈출) MockMVC + Junit으로 컨트롤러 테스트코드 만들기 API 서버를 만들다 보면 테스트를 주로 PostMan을 이용해 HTTP를 생성해서 컨트롤러의 동작을 테스트하거나 웹 브라우저를 켜서 테스트한다. 본 테스트 시간보다 웹 어플리케이션을 실행하고 종료하는 시간이 더 오래걸리는 상황이 발생한다. 또한, 매번 HTTP body에 데이터를 작성하는게 매우 비 효율적이다. PostMan은 다음과 같은 문제점이 있다. 개발자의 수동 테스트 코드를 수정한 후에 서버를 재시작하고 테스트하기 이런 문제를 해결하기 위해 다음과 같은 방법을 사용할 수 있다. JUnit 사용 + MockMVC 사용 그 동안 웹 애플리케이션을 작성한 후, 해당 웹 애플리케이션을 Tomcat이라는 이름의 WAS(Web Applicatio.. 2022. 2. 17. 이전 1 다음