JEST 기초 2

sm·2022년 8월 16일
0

1. 비동기코드 테스트

- callback

const fn = {
    getName: callback => {
        const name = "Mike";
        setTimeout(() => {
            callback(name);
        }, 3000);
    },
};

module.exports = fn;
test("3초 뒤에 받아오는 이름은 Mike", done =>{
    function callback(name) {
        expect(name).toBe("Mike");
        done();
    }
    fn.getName(callback);
})

test는 실행이 끝줄에 도달하게 되면 끝나버린다. 그래서 예정되있던 callback함수가 실행이 되지 않는다. 따라서 done 이라는 콜백함수를 전달하면 done 이 호출될때까지 JEST는 테스트를 끝내지 않는다

여기서 api 의 에러를 감지하고싶으면 try~catch로 감싸주면된다.

- Promise

getAge: () => {
        const age = 30;
        return new Promise((res,rej) => {
            setTimeout(()=>{
                res(age);
            }, 3000);
        });
    },
test("3초 뒤에 받아오는 나이는 30", () => {
    return expect(fn.getAge()).resolves.toBe(30);
})

- async/await

test("3초 뒤에 받아오는 나이는 30", async() => {
    const age = await fn.getAge();
    expect(age).toBe(30);
})
profile
Today I Learned

0개의 댓글