🚀

[jest] Promise型のテストの書き方

2023/05/19に公開

Promiseのようなコンストラクタがある場合はインスタンスが作成されているかの確認ができる
対象のコード

promise() {
  new Promise(resolve, reject) => {
    何らかの処理
  }
}

対象のテスト

expect(component.promise()).toBeInstanceOf(Promise)

promiseのインスタンスがあるということがわかる

またpromiseのmockを作成する場合、Promiseは返り値としてPromise型を返すので

const result = 'resultですよ'
const error = new Error('errorですね')
jest.spyOn(component, 'promise').and.returnValue(Promise.resolve(result))
jest.spyOn(component, 'promise').and.returnValue(Promise.reject(error))

jestでもPromiseを返すようにする必要がある

Discussion