테스트/단위 테스트 (Vue)
단위 테스트 - 비동기 테스트
IT Blue
2021. 9. 4. 10:56
단위 테스트 - 비동기 테스트
비동기함수
/* example.js */
export function asyncFn() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Done!')
}, 2000)
})
}
테스트
/* example.test.js */
import { asyncFn } from './example'
describe('비동기 테스트', () => {
// 비동기 테스트 - 패턴1
// test() 두번째 인수 콜백으로 done 매개 변수 사용, 함수처럼 실행 가능
// 비동기가 종료되는 시점에 실행
test('done', (done) => {
asyncFn().then(res => {
expect(res).toBe('Done!')
done()
})
})
// 비동기 테스트 - 패턴2
// return 키워드 사용
// 비동기로 동작해야 한다는 것을 인지
test('then', () => {
return asyncFn().then(res => {
expect(res).toBe('Done!')
})
})
// 비동기 테스트 - 패턴3
// resolves 브릿지 추가
// expect() 에 비동기 함수를 실행
// 주의사항 - return 키워드로 반환
// test('resolves', () => {
// return expect(asyncFn()).resolves.toBe('Done!')
// })
test('resolves', () => expect(asyncFn()).resolves.toBe('Done!'))
// 비동기 테스트 - 패턴4
// async/await 사용
// 콜백 자체를 비동기로 만들어서 사용
test('async/await', async () => {
const res = await asyncFn()
expect(res).toBe('Done!')
})
})