로직과의 사투/Test

    의존성 역전을 통한 Mockito 프레임워크없이 단위 테스트 하기

    1. 개요 의존성 역전 원칙(Dependency Inversion Principle)은 객체 지향 설계 원칙 중 하나이다. SOLID 중 D가 바로 의존석 역전 원칙이다. 시스템의 고수준 모듈(비즈니스 로직 등의 세부 구현)이 저수준 모듈(데이터 엑세스 등)에 직접적으로 의존하는 것을 피하고, 대신 둘 모두가 추상화에 의존하도록 설계하는 원칙이다. 의존성 역전 원칙이 구현되어 있지 않은 프로젝트의 경우 유닛 테스트가 쉽지 않다. 일반적인 레이어드 아키텍처의 스프링 프로젝트들은Controller - Service - Repository 순으로 모두 직접 의존하게 되어 있는 경우가 많다. 이런 프로젝트들은 단위 테스트 작성이 매우 까다롭다. 데이터베이스 연결이 필요한 환경에서 테스트를 실행하거나, 테스트 데..

    Mockito를 이용한 단위테스트 겉핥기

    1. 단위 테스트란? 단위 테스트는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 작동하는 지 검증하는 절차이다. 즉 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차. - 위키피디아 단위 테스트 잘 갖춰진 단위 테스트 코드들이 존재한다면, 리팩토링 또는 레거시 코드 수정에 자신감을 가질 수 있게 된다. 코드 수정을 통해 변경된 이후의 코드들이 정상 동작하는 지 단위 테스트를 통해 파악 가능해지기 때문이다. 단위 테스트는 테스트 대상 코드를 정확하게 파악하는 것이 중요하다. 비즈니스 로직이 들어간 레이어의 코드가 단순하다면 크게 문제되지 않지만, 일반적으로 아래와 같은 상황들이 단위 테스트 대상 코드를 식별하기 어렵게 만든다. 외부 API와의 통신 DB CRUD 불필요한 데이터 생성 ..