[javascript] Mocha에서 콜백을 사용하지 않는 비동기 테스트 작성 방법은?

아래는 Mocha에서 콜백을 사용하지 않는 비동기 테스트를 작성하는 예시입니다.

// 필요한 동작이 완료된 후에 resolve되는 프로미스를 반환하는 비동기 함수 예시
function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Data successfully fetched');
    }, 1000);
  });
}

describe('비동기 테스트', () => {
  it('데이터를 성공적으로 가져와야 함', async () => {
    // 비동기 함수 호출
    const data = await fetchData();

    // 테스트 결과 검증
    assert.equal(data, 'Data successfully fetched');
  });
});

위 코드에서 fetchData()는 프로미스를 반환하는 비동기 함수입니다. async 키워드를 사용하여 테스트 함수를 비동기 함수로 만들고, await 키워드를 이용해 비동기 함수의 실행이 완료될 때까지 기다릴 수 있습니다.

fetchData() 함수가 resolve되면 반환된 데이터를 검증하기 위해 assert.equal()을 사용합니다.

Mocha는 비동기 테스트 중에 발생할 수 있는 에러를 처리하기 위해 try-catch 블록을 사용할 수 있습니다. 에러가 발생하면 테스트는 자동으로 실패로 표시됩니다.