2

getObject という名前のモックされたファクトリ関数をスパイしようとしています。私はこのようにやっています:

import Storage from "/path/"
const fs1 = new Storage("ffffff");
const fs = mocked(fs1);

jest.mock("path to library", () => {
  return {
    CAStorage: function () {
      return {
        getObject: async (
          _baseDirName: string,
          _fileName?: string
        ): Promise<Buffer> => {
          return Buffer.from(
            `some string`
          );
        },
      };
    },
  };
});

スパイオンのコード

describe("", () => {
  test("", async () => {
    let readFileSpy = jest.spyOn(fs, "getObject");
    expect(readFileSpy).toBeCalledTimes(1);
  });
});

私が得ているエラーは次のとおりです: コールの予想数: 1 コールの受信数: 0

関数が一度呼び出されたとしても。

助けてくれてありがとう!

4

1 に答える 1

0

このブログ記事を見てください

TL;DR

モック化されたライブラリ/モジュールのプロトタイプを設定する必要があります。例えば

import { ClassA } from "some/lib";

describe("description", () => {
  test("test description", () => {
    ClassA.prototype.functionToMock = jest.fn().mockImplementationOnce(() => {
      // your implementation here
    })
  })
})
于 2020-05-18T14:13:09.997 に答える