2023-11-06
react-nativeで使えるテストツールでjestというものが比較的メジャーで
ガイドも豊富だったので試しに使ってみることにした。
jestって何って言われるとテストツールばりばり初学者の自分には答えがたい難題だったが
おおざっぱに答えると「ある関数の返り値が、期待したデータと一致するかどうか確かめる」
ためのテストツール。jestにはテストに必要な機能が一通り揃っていて、しかもめっちゃ
簡潔に書けるというもの。
自宅で作っているアプリがreact-nativeなので、この際テスト術を養うのも悪くないと思い
試しに入れてテストしてみることにした。
導入方法は以下の通り。
npmコマンドでパッケージをインストール
npm install –save-dev jest
例として二つの数の和が期待した値と同じかどうかチェックするテストを作ってみます。
アプリの直下にsum.jsというファイルを作ります。
function sum(a, b) {
return a + b;
}
module.exports = sum;
作成したら、今度はtestフォルダの中にtestフォルダを作って中にApp-test.jsという名前の
ファイルを作ります。ソースコードは以下の通り。
import sum from '../sum';
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
test内のカッコでテスト判定を行います。なお、testを書き忘れてnpm testをすると
Your test suite must contain at least one testで煽られてエラーになります。
この中のexpectで比較テストをしています。tobeの中には1と2の合計の期待値が入っており、
この数字と一致しなかった場合はエラーとしてメッセージを表示します。
一番簡単な単体テストは以上。この他にもモック関数や非同期通信のテストもできるみたいです。
モック関数についてはまた後日コードの解説をします。わー、jest1年生は覚えることいっぱい。