NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이 에러 메시지가 발생하며 실행이 되지 않는 경우가 있습니다.
Error: Resolution method is overspecified. Specify a callback * or * return a Promise; not both.
이 문제는 아래와 같은 코드에서 발생합니다.
describe('User', async () => { it('should save without error', async (done) => { const user = new User('Luna'); await user.save(done); done(); }); });
async/await
을 사용하여 작업을 처리하는 것과 done()
콜백을 동시에 사용하여서 발생하는 문제입니다. done은 콜백을 사용하여 테스트 완료를 처리하는데, 이 방법을 사용할 때는 async/await을 함께 사용하지 못하기 때문입니다.
가능한 경우 done
콜백 대신 아래와 같이 async/await
을 사용합니다.
describe('User', function () { it('should save without error', async (done) => { const user = new User('Luna'); await user.save(done); done(); }); });
또는 아래와 같이 Promise 객체를 리턴하도록 코드를 변경할 수 있습니다.
describe('User', function () { it('should save without error', function () { return new Promise((resolve) => { const user = new User('Luna'); user.save(done).then(() => { resolve(); }); }); }); });
Xcode에서 iOS 애플리케이션을 빌드(Archive)하고 App Store Connect에 앱을 업로드하는 도중, 아래와 같은 에러가 발생하면서 더…
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…