Nuxt/Vuex/Jest 테스트에서 Promise 예외 핸들링 하기

Nuxt.js·2021년 9월 15일
0

시행착오

목록 보기
4/6

특정조건에서 예외 발생 시키기

예를들어서 페이로드가 예상대로 들어오지 않았다면 아래처럼 예외를 강제로 발생 시킨다.
store/actions.js에서

  apiUserCreatePt({ commit, dispatch }, payload) {
    if (!payload) {
      return Promise.reject(new Error('[ParameterMissing] (payload)'))
    }
    ...
  }

파라메터 뿐 아니라 API의 리턴값 등에 대해서도 조건을 걸면 되겠다.

Jest에서 예외가 발생하지 않는 스펙을 정의 하는법

Jest 스펙 파일에서
test/jest/actions.spec.js

    expect(
      await store.dispatch('apiUserCreatePt', { pts: 'asd' })
    ).rejects.not.toThrow()

와 같이 정의 하면된다.
잘못된 입출력에 의해서 예외가 발생하면 콜스텍과 함께 예외가 출력 되며 테스트가 실패 한다.

profile
Nuxt.js

0개의 댓글