[java] Mockito를 사용하여 파일 시스템을 모킹하는 방법은?

Mockito는 자바에서 유닛 테스트를 작성할 때 사용되는 모킹 프레임워크입니다. 파일 시스템을 모킹하여 단위 테스트를 작성하려면 다음 단계를 따르면 됩니다.

  1. Mockito를 프로젝트에 추가합니다. Maven을 사용한다면, pom.xml 파일에 다음 종속성을 추가하세요.
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.12.4</version>
    <scope>test</scope>
</dependency>
  1. 파일 시스템을 모킹할 클래스를 작성합니다. 예를 들어, FileSystemUtil이라는 클래스가 있다고 가정해보겠습니다.
import java.io.File;

public class FileSystemUtil {

    public boolean isFileExists(String filePath) {
        File file = new File(filePath);
        return file.exists();
    }

    // 다른 파일 시스템 관련 메서드들...
}
  1. 모킹 테스트 클래스를 작성합니다. 예를 들어, FileSystemUtilTest라는 클래스를 작성해보겠습니다.
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;

import java.io.File;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;

@RunWith(MockitoJUnitRunner.class)
public class FileSystemUtilTest {

    @Mock
    private File file;

    private FileSystemUtil fileSystemUtil = new FileSystemUtil();

    @Test
    public void testIsFileExists() {
        String filePath = "path/to/file.txt";
        when(file.exists()).thenReturn(true);

        assertTrue(fileSystemUtil.isFileExists(filePath));
    }

    // 다른 파일 시스템 관련 테스트 메서드들...
}

위의 예제에서는 FileSystemUtil 클래스를 테스트하고 싶기 때문에 FileSystemUtilTest 클래스에서 FileSystemUtil의 인스턴스를 생성합니다. @RunWith(MockitoJUnitRunner.class) 어노테이션을 사용하여 Mockito를 JUnit 실행기로 설정합니다. @Mock 어노테이션을 사용하여 File 클래스의 인스턴스를 모킹합니다. 그리고 when(file.exists()).thenReturn(true)를 사용하여 file.exists() 메서드가 항상 true를 반환하도록 설정합니다.

  1. 테스트를 실행합니다. 모킹된 파일 시스템을 사용하여 원하는 동작을 확인할 수 있습니다.

이렇게 하면 Mockito를 사용하여 파일 시스템을 모킹하는 방법을 알 수 있습니다. Mockito는 다른 모킹 작업에도 사용될 수 있으므로 유용한 도구입니다. 자세한 내용은 Mockito 공식 문서를 참조하시기 바랍니다.