[java] Mockito를 사용하여 파일 시스템을 모킹하는 방법은?
Mockito는 자바에서 유닛 테스트를 작성할 때 사용되는 모킹 프레임워크입니다. 파일 시스템을 모킹하여 단위 테스트를 작성하려면 다음 단계를 따르면 됩니다.
- Mockito를 프로젝트에 추가합니다. Maven을 사용한다면,
pom.xml
파일에 다음 종속성을 추가하세요.
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.12.4</version>
<scope>test</scope>
</dependency>
- 파일 시스템을 모킹할 클래스를 작성합니다. 예를 들어,
FileSystemUtil
이라는 클래스가 있다고 가정해보겠습니다.
import java.io.File;
public class FileSystemUtil {
public boolean isFileExists(String filePath) {
File file = new File(filePath);
return file.exists();
}
// 다른 파일 시스템 관련 메서드들...
}
- 모킹 테스트 클래스를 작성합니다. 예를 들어,
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
를 반환하도록 설정합니다.
- 테스트를 실행합니다. 모킹된 파일 시스템을 사용하여 원하는 동작을 확인할 수 있습니다.
이렇게 하면 Mockito를 사용하여 파일 시스템을 모킹하는 방법을 알 수 있습니다. Mockito는 다른 모킹 작업에도 사용될 수 있으므로 유용한 도구입니다. 자세한 내용은 Mockito 공식 문서를 참조하시기 바랍니다.