[java] SnakeYAML을 사용하여 YAML 파일의 테스트 자동화하기

YAML은 사람이 읽고 쓰기 쉬운 데이터 직렬화 형식으로, 자주 사용되는 설정 파일 포맷입니다. YAML 파일의 내용을 자동으로 테스트하려면 SnakeYAML 라이브러리를 사용할 수 있습니다. SnakeYAML은 자바에서 YAML 파일을 읽고 쓰는 기능을 제공하는 라이브러리입니다.

SnakeYAML 라이브러리 추가하기

먼저, SnakeYAML 라이브러리를 프로젝트에 추가해야 합니다. Maven 프로젝트를 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.27</version>
    </dependency>
</dependencies>

Gradle 프로젝트를 사용하는 경우, build.gradle 파일에 다음 종속성을 추가합니다.

dependencies {
    implementation 'org.yaml:snakeyaml:1.27'
}

YAML 파일 읽기

SnakeYAML을 사용하여 YAML 파일을 읽으려면 다음 코드를 사용합니다.

import org.yaml.snakeyaml.Yaml;

public class YAMLReader {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        try (InputStream in = Files.newInputStream(Paths.get("example.yaml"))) {
            Map<String, Object> data = yaml.load(in);
            // YAML 파일에서 읽어온 데이터를 활용하여 테스트 수행
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 example.yaml 파일의 경로를 알맞게 수정하세요. 코드 실행 시, 해당 파일의 내용을 읽어서 data 변수에 저장합니다. 이후 필요한 데이터를 추출하여 테스트를 자동화할 수 있습니다.

YAML 파일 작성

SnakeYAML을 사용하여 YAML 파일을 작성하려면 다음 코드를 사용합니다.

import org.yaml.snakeyaml.Yaml;

public class YAMLWriter {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        Map<String, Object> data = new HashMap<>();
        data.put("name", "John Doe");
        data.put("age", 30);
        data.put("email", "johndoe@example.com");

        try (Writer writer = Files.newBufferedWriter(Paths.get("example.yaml"))) {
            yaml.dump(data, writer);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 example.yaml 파일의 경로를 알맞게 수정하세요. 코드 실행 시, data 변수에 저장된 내용을 YAML 형식으로 작성하여 해당 파일에 쓰게 됩니다.

결론

SnakeYAML을 사용하여 YAML 파일의 테스트를 자동화하는 방법을 살펴보았습니다. SnakeYAML은 간편하게 YAML 파일을 읽고 쓸 수 있는 기능을 제공하므로, 설정 파일 등을 다루는 테스트를 자동화할 때 유용하게 사용될 수 있습니다.

참고 자료