Buffer를 이용한 Jest e2e테스트 코드

이건선·2023년 5월 23일
0

해결

목록 보기
40/48
post-custom-banner

문제점 : Multer 라이브러리를 사용해서 이미지를 S3에 올리는 API를 e2e테스트 할 때, superagent: double callback bug라는 오류 메세지가 발생함

시도해본 것 : 테스트의 타임아웃을 10000ms로 늘려봤지만 소용없었음, const mockFiles = ['test'] 배열안에 테스트 문자를 하드 코딩 시도했지만 소용없었음

해결 :

// 이전 코드
...

const mockFile: any = [];

...

.attach('files', mockFile, 'filename.txt')

...

// 수정한 코드
...

.attach('files', Buffer.from([]), 'filename.txt')

...

알게 된 것 : Buffer.from([])는 Node.js에서 제공하는 Buffer 클래스의 from 메서드를 호출하는 구문이다. 이 메서드는 특정 형식의 데이터를 Buffer 인스턴스로 생성하는 역할을 한다.

  1. mockFile: any = [] : mockFile을 빈 배열로 설정했는데 이것은 파일의 내용으로 빈 배열을 첨부하려는 시도다. 하지만, superagent 라이브러리는 바이너리 데이터를 나타내는 Buffer 형태의 파일 첨부만을 지원하고 있으므로, 이런 형태의 데이터를 받아들일 수 없다. 따라서 오류가 발생한 것

  2. Buffer.from([]) : 이 메서드는 빈 바이너리 데이터를 생성하는 Node.js의 Buffer 클래스의 from 메서드를 호출한다. 이것은 실제로는 빈 파일을 첨부하는 것과 같다. 따라서, 테스트 상황에서 파일 첨부를 시뮬레이션하려면 Buffer.from([])를 이용하는 것이 적절한 것이었다.

profile
멋지게 기록하자
post-custom-banner

0개의 댓글