[java] Mockito를 활용한 리팩토링

이번 포스트에서는 Mockito를 사용하여 테스트 코드를 작성하고, 코드를 리팩토링하는 방법에 대해 알아보겠습니다.

Mockito란 무엇인가요?

Mockito는 자바를 위한 모의 객체(Mock Objects) 프레임워크로, 테스트 중에 의존성 객체를 모의(mock) 또는 가짜 객체로 대체할 수 있는 기능을 제공합니다. 이를 통해 테스트 코드 작성을 용이하게 하고, 의존성 관련 문제를 해결할 수 있습니다.

테스트 코드 작성

우선 Mockito를 사용하여 간단한 테스트 코드를 작성해보겠습니다. 예를 들어, 다음과 같은 메소드가 있는 클래스를 대상으로 테스트 코드를 작성해볼 수 있습니다.

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

이를 테스트하기 위해 Mockito를 활용하여 Calculator 클래스의 인스턴스를 모의(mock)하고, add 메소드가 올바르게 동작하는지 확인하는 테스트 코드를 작성할 수 있습니다.

import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Test;

public class CalculatorTest {
    @Test
    public void testAdd() {
        Calculator calculator = mock(Calculator.class);
        when(calculator.add(2, 3)).thenReturn(5);

        // 테스트 코드 작성
    }
}

코드 리팩토링

테스트 코드 작성이 완료되면, Mockito를 활용하여 리팩토링을 진행할 수 있습니다. 예를 들어, 코드 내에서 다른 클래스나 외부 의존성을 가진 경우에도 Mockito를 활용하여 해당 객체를 모의(mock)할 수 있으며, 이를 통해 단위 테스트의 대상을 명확히 정의하고 테스트 코드를 보다 쉽게 작성할 수 있습니다.

결론

Mockito를 활용하면 테스트 주도 개발(TDD)이나 리팩토링 과정에서 코드 작성 및 테스트 작성을 보다 효과적으로 수행할 수 있습니다. Mockito를 이용하여 모의 객체를 생성하고 테스트 코드를 작성하는 방법을 숙지하면, 안정적이고 견고한 코드를 개발하는 데 도움이 될 것입니다.

포스트를 마치며, Mockito를 이용한 테스트 코드 작성 및 리팩토링에 대해 간략히 살펴봤습니다. Mockito를 활용하여 효율적인 테스트 코드와 안정적인 소프트웨어를 개발하는 데 도움이 되길 바라겠습니다.

참고 자료