비동기 test
비동기 코드 테스트
jest 는 테스트가 끝나면 바로 끝나버림. 콜백 함수를 넘겨주어도 기다리지 않고 끝나기 때문에 제대로 된 테스트를 진행할 수 없다. 이때는 test네 콜백에 인자로 done을 넘겨주면 된다. 이 done이 호출되면 테스트가 끝났다고 명시할 수 있어서 콜백이 끝나는 부분에서 done을 호출하면 제대로된 테스트를 할 수 있다.
fn :
1 | const fn = { |
test :
1 | test("3초 후에 받아온 이름은 Mike이다.", (done) => { |
만약 done을 받고 호출하지 않으면 timeout으로 종료 되고 테스트는 실패한다.
에러를 검사하고 싶으면 try catch를 사용하면 된다.
1 | test("서버 에러 비동기 테스트", (done) => { |
promise를 리턴하면 jest는 promise 가 resolve 될때까지 기다려 준다. 단 이때는 return을 명시해 주어야 한다.
1 | test("promise test", () => { |
보다 간단하게 사용하기 위한 resolves, rejects matcher 가 있다.
1 | test("promise test resolve Matcher", () => { |
async await 도 사용할 수 있다.
1 | test("3초후에 async await test", async () => { |
마찬가지로 resolves, rejects를 사용할 수 있다.
1 | test("3초 후에 resolves 쓰는 패턴", async () => { |