[javascript] Jest에서의 비동기 테스트 작성 방법은 어떻게 되는가?
Jest는 JavaScript로 작성된 코드의 테스트를 위한 강력한 프레임워크입니다. 비동기 코드를 테스트하기 위해서는 Jest의 다양한 기능을 사용할 수 있습니다. 여기에는 콜백 함수, Promises, async/await 및 테스트 전 후의 라이프사이클 메서드가 포함됩니다.
일반적으로 비동기 테스트를 작성하기 위해서는 다음의 절차를 따릅니다:
- 테스트 케이스 함수를 선언합니다. Jest에서는 일반적으로
test
또는it
함수를 사용합니다. - 비동기 코드를 작성합니다. 이는 일반적으로 비동기 함수를 호출하거나 Promises를 사용하는 것을 포함할 수 있습니다.
- Jest의 비동기 처리 메커니즘을 사용합니다. Jest에서는 callback 함수를 사용할 수 있고, Promise 객체를 반환하거나 async/await를 사용할 수 있습니다.
- 비동기 코드의 결과를 테스트합니다. Jest에서는
expect
함수를 사용하여 결과를 검증합니다. - 테스트를 실행합니다. Jest를 실행하면 비동기 테스트가 자동으로 실행되고 결과를 출력합니다.
예를 들어, 다음은 비동기 함수를 테스트하는 예제입니다.
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data fetched successfully!');
}, 1000);
});
}
test('fetchData 함수가 데이터를 정상적으로 가져오는지 테스트', () => {
expect.assertions(1);
return fetchData().then(data => {
expect(data).toEqual('Data fetched successfully!');
});
});
위 예제에서, fetchData
함수는 1초 후에 Promise를 resolve 하여 데이터를 가져옵니다. test
함수는 비동기 함수를 테스트하기 위해 Promise를 반환하고, 결과를 검증하는 expect
함수를 사용합니다. expect.assertions(1)
은 검증할 결과의 수를 지정하는 역할을 합니다.
Jest는 비동기 테스트를 작성하기 위한 다양한 방법을 제공하기 때문에 프로젝트의 요구 사항과 선호하는 스타일에 따라 선택할 수 있습니다. 더 자세한 내용은 Jest의 공식 문서를 참조하시기 바랍니다.