fetch-mockを使ったテスト


mochaにおけるテストでfetch-mockを使ったのでメモしておく。
フロントエンドで、fetch APIを使ってリクエストを行う部分のテストをする際にリクエストをmockするのにfetch-mockを利用した。

mockとは

mockとは、テスト対象クラスが呼び出しているクラスを置き換えるためのテスト用オブジェクトのこと。mockでテスト対象クラスが呼び出しているクラスを置き換え、mockの動作を指定することで意図したテスト条件を作ることができる。

fetch-mockを使ったテスト

fetch-mockを使ったテストの内、GETリクエストのテストの場合をメモしておく。

テストコード例
import fetchMock from "fetch-mock";

describe("APIのテスト", () => {

    afterEach(() => {
        // fetchMockをリセット
        fetchMock.restore();
    });

    it("GETメソッドをmock", async () => {
        // fetch-mockを設定
        fetchMock.get(<リクエストURL>, {
            <レスポンスの内容>
            // 例
            //status: 200,
        });
        const result = <テスト対象メッソド>
    });
});

上記のように、fetchMock.get()の第1引数にURLを指定し、リクエストのURLと一致した場合mockされる。第2引数はレスポンスを指定する。