ITナレッジ Typescript

【初心者向け】TypeScriptで使える!Jestの便利なMock Functionsまとめ

【初心者向け】TypeScriptで使える!Jestの便利なMock Functionsまとめ
悩む人
悩む人

Mock Functionsって種類がたくさんあるみたいだけど、どれが便利なの?
具体的にどう使うのか教えて!

JestのMock Functionsの中でも便利な使い方を
ピックアップしてわかりやすく解説します!

きい
きい

 

この記事を書いた人

  • エンジニア歴4年のフリーランスデータエンジニア
  • 高卒工場勤務からエンジニア転職
  • 3年目でフリーランスになり年収1000万↑達成
  • フルリモ歴2年、2児の育児中

  

おすすめの
エージェント
特徴詳しい解説は
コチラ👇
geechs job・大手企業との取引が多い
・リモート案件80%以上
/geechs_job
Midworks・クラウド会計ソフトfreeeの利用が無料
・マージンが比較的低い
/midworks
TECH STOCK・平均年収が935万円と高い
・フルリモート案件が72%以上
/techstock
PE-BANK・マージンが低く手取りが多い、福利厚生も充実
・地方の案件も豊富に取り扱っている
/pe-bank
techadapt・エージェント全員がエンジニア経験者
・確定申告時の税理士報酬負担制度あり
/techadapt

 

Mock Functionsの便利な種類と使い方

1. jest.fn():基本的なMock関数

最もシンプルなMock Functionです。

関数の動作を模擬し、呼び出し回数や引数を記録します。

使い方例:

 

2. mockReturnValue:固定の値を返す

jest.fn()に対して、特定の戻り値を設定できます。

使い方例:

 

3. mockImplementation:任意の実装をモックする

実際の関数のように、任意のロジックをモックできます。

使い方例:

 

4. mockResolvedValue:非同期関数で値を返す

非同期処理(Promise)に対応したMock関数を作成できます。

使い方例:

 

5. mockRejectedValue:非同期関数でエラーを返す

非同期処理でエラーを模擬する場合に使用します。

使い方例:

 

6. jest.spyOn:既存の関数をスパイする

オブジェクトのメソッドをモックしつつ、元の動作を保持できます。

使い方例:

 

7. mockClearmockReset:履歴をリセット

テスト中にMock関数の履歴をクリアしたい場合に使います。

違い:

  • mockClear: 呼び出し履歴のみをリセット。
  • mockReset: 呼び出し履歴に加えて、戻り値や実装もリセット。

使い方例:

 

8. mockImplementationOnce:一度だけ特定の値を返す

呼び出しごとに異なる戻り値を設定したい場合に便利です。

使い方例:

 

Mock Functionsのメリットを最大限活用!

Mock Functionsを使うメリット

  • 外部依存の排除: APIやデータベース操作を省略してテストが可能。
  • 柔軟なテスト: 任意の戻り値やエラーを簡単に設定。
  • 詳細な検証: 呼び出し回数や引数の追跡が可能。

 

まとめ

JestのMock Functionsは、テストを効率化し、バグを防ぐ強力なツールです。

特に以下の機能を覚えておくと、初心者でもすぐに実践的なテストが書けます。

  • mockReturnValuemockResolvedValueで値をモック。
  • jest.spyOnで既存関数を監視。
  • mockImplementationで柔軟なロジックを実装。

JestのMock Functionsを使いこなして、テストの質を上げましょう!

 

リモート案件を探せる
エージェント
特徴
geechs job90%以上がリモート案件。高単価・優良案件が多い。
Midworksフルリモート案件だけに絞って検索可能。福利厚生が手厚い。
TECH STOCK72%がリモート案件。平均年収935万
PE-BANKマージンが低く、福利厚生が手厚い。地方の案件も豊富。
techadapt条件を満たせば確定申告時の税理士費用を負担してもらえる。

    きい(@kii_sfpy)

きい

エンジニア4年目のフリーランスデータエンジニア。

INTJ-A/5w4、最近はTypescriptが楽しい。

Python, Typescript, Salesforce, GCP, AWS, Tableau …etc

開発に関するご相談も、お気軽にご連絡ください! 

お問い合わせはコチラ

-ITナレッジ, Typescript
-, , ,