jestのテストコード側で特定の例外を発生させて、機能側でその例外をキャッチ
js、tsの例外キャッチについて
javaみたいに直接例外の名前を指定して、
} catch (IOException ioe) {
みたいに指定できない。
普通、js、tsで例外処理を書くときは、こんな感じになる
try {
//いろいろ
} catch (err) {
console.error(err);
}
だけど、処理によっては、特定の例外をキャッチさせたいときがある。
方法
●機能側のコード
➡機能側で例外をキャッチするには、こうなる
try {
//いろいろ
} catch (err) {
if (err.message === 'GoneException') {
//なんかいろいろ
}
}
●テストコード
➡以下のように、mockImplementation()を使うことで、モック関数のデフォルトの実装を定義できる。今回は、2回目の処理呼び出しの際に例外を発生させるようにしている。
公式ドキュメントはこちら
https://jsprimer.net/basic/error-try-catch/
await jest
.spyOn(pushModule, 'pushParams')
.mockReturnValueOnce(Promise.resolve())
.mockImplementation(() => {
throw new Error('GoneException')
})
感想
自分はjavaは研修以外で勉強してないので、javaだとテストコードの書き方分からん。JUnitを用いたテストの流れは見たことあるけど、jestに比べるとめっちゃ面倒で分かりにくい気がするンゴ。。。
javascriptだと、nodeを考えると便利なモジュールを使いまくって、テストコードも書きやすいし、何か実装で困ったら、このモジュール使ったらええやんみたいに解決できることが多い。
Author And Source
この問題について(jestのテストコード側で特定の例外を発生させて、機能側でその例外をキャッチ), 我々は、より多くの情報をここで見つけました https://qiita.com/AAA0125/items/ded75c7942bd7ccf026c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .