테스트를 먼저 만들어둔 후 코드를 작성하는 것을 TDD라고 부릅니다. 이렇게 테스트 코드를 먼저 작성해 둔 후 코드를 작성하면 다양한 예외 상황을 고려하고 완전하고 보다 쉽게 코드를 작성할 수 있습니다.
그만큼 테스트 코드는 중요하기에 코드를 작성하면서 테스트는 어떻게 만들 수 있을까를 생각해보는 것은 좋은 습관입니다. 테스트는 단위 테스트와 통합 테스트로 나눌 수 있습니다. 단위테스트는 말그대로 하나의 단위에 초점 맞춘 테스트입니다. 이런 하나의 단위를 테스트 하기위해서 테스트 코드를 작성하다 보면 여러 클래스와 메소드가 의존관계에 얽혀 불필요한 의존 오브젝트를 생성하고 사용하는 경우가 많았습니다. 이러한 번거로운 작업을 없애주기 위해 나온것이 Mockito 프레임워크입니다.
사용방법
1. 인터페이스를 이용해 목 오브젝트를 만든다.
2. 목 오브젝트가 리턴할 값이 있으면 이를 지정해준다. 메소드가 호출되면 예외를 강제로 던지게 만들 수도 있다.
3. 테스트 대상 오브젝트에 DI해서 목 오브젝트가 테스트 중에 사용되도록 만든다.
4. 테스트 대상 오브젝트를 사용한 후에 목 오브젝트의 특정 메소드가 호출됐는지, 어떤 값을 가지고 몇 번 호출됐는지를 검증한다.
위 4가지 단계를 거쳐 사용하면 되지만, 2단계와 4단계는 각 필요할 경우에만 사용하면 됩니다.
간단히 어노테이션을 이용하여 사용할수도 있습니다.
- @Mock : 가짜 객체를 만들어 반환해줌
- @Spy : 스텁하지 않은 메소드들은 원본 메소드 그대로 사용함
- @InjectMocks : 생성된 가짜 객체를 주입해줌
이를 이용한다면 테스트 코드를 만드는 것을 보다 수월하게 할 수 있습니다.
'Spring' 카테고리의 다른 글
IoC 컨테이너란 무엇인가 (0) | 2024.04.16 |
---|---|
어노테이션이란? (0) | 2024.04.02 |
트랜잭션 어노테이션 (@Transactional, 속성, 정책, 방법) (0) | 2024.03.28 |
JAVA Mail을 이용한 메일 발송 (0) | 2024.03.20 |
트랜잭션 (1) | 2024.03.16 |