Search

[TIL] nestjs 모킹 데이터 순서 통제하기

subtitle
여러 데이터를 순서에 맞게 모킹해야 할 때
Tags
자바스크립트
test
nestjs
Created
2022/07/18
2 more properties
여러 데이터를 순서에 맞게 모킹해야 할 때
let count = 0; count++; if(count === 1) return 'foo'; if(count === 2) ...
JavaScript
복사

generator 사용

class MockRequester { private gen: Generator; constructor() { this.gen = this.generateId(); } request() { return this.gen.next().value; } private *generateId() { const sha1 = uuidv4(); const sha2 = uuidv4(); yield sha1; yield sha1; yield sha2; } }
TypeScript
복사

jest 사용

const MockRequester = mock<Requester>({ request: jest .fn() .mockResolvedValueOnce({ id: uuidv4() }) .mockResolvedValueOnce({ id: uuidv4() }) .mockResolvedValue({ id: uuidv4() }) })
JavaScript
복사
덤으로 jest.fn 으로 목킹하면 목함수 expect 도 가능
expect(reqesuter.request).toBeCallTimedTimes(1);//몇번 호출되었냐 expect(reqesuter.request).toBeCalledWith({ parameter: { a: "b" }});//어떤 파라미터로 호출되었냐 expect(reqesuter.request).toBeCalledNth~~(0,{ parameter: { a: "b" }});//몇번째 호출되었을때 검증
Plain Text
복사