Spring/Tistory

단위테스트시 MultipartFile 만드는 법

JJJAEOoni 2022. 6. 14. 10:48
반응형

1. 라이브러리 의존성 등록

https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.4

 

Maven Repository: commons-fileupload » commons-fileupload » 1.4

The Apache Commons FileUpload component provides a simple yet flexible means of adding support for multipart file upload functionality to servlets and web applications. commons-fileupload commons-fileupload 1.4 // https://mvnrepository.com/artifact/commons

mvnrepository.com

 

2. 아래와 같이 코드 작성

package site.metacoding.blogv3.util;

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

public class UtilMultipartFileTest {

    @Test
    public void multipartfile_테스트() {
        try {
            File file = new File(
                    "C:\\workspace\\repositories\\spring_lab\\blogv3\\src\\main\\resources\\static\\images\\dog.jpg");
            FileItem fileItem = new DiskFileItem("mainFile", Files.probeContentType(file.toPath()), false,
                    file.getName(),
                    (int) file.length(), file.getParentFile());
            InputStream input = new FileInputStream(file);
            OutputStream os = fileItem.getOutputStream();
            IOUtils.copy(input, os);
            MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
            System.out.println("========================");
            System.out.println(multipartFile.getOriginalFilename());
            System.out.println("========================");

            assertEquals("dog.jpg", multipartFile.getOriginalFilename());
        } catch (Exception e) {
            System.out.println("========================");
            System.out.println(e.getMessage());
            System.out.println("========================");
        }
    }
}

 

3. Mock로 간단하게 만드는 법

https://velog.io/@go_by/Spring-Boot-MockMvc-multipartform-data%EB%A1%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0

 

반응형