0

モジュールで関数を実行できると思ってspyOnいましたが、明らかに呼び出されたとしても登録されません。ここに煮詰めたものがありsample.jsます:

const func1 = () => {
  return func2();
};

const func2 = () => {
  return "func2 called";
};

module.exports = { func1, func2 };

そして、ここにその冗談のテストがあり./__tests__/sample.test.jsます:

const sample = require("../sample");

describe("sample", () => {
  it("should spy on func2", () => {
    jest.spyOn(sample,"func2");
    const f = sample.func1();
    console.log(f);                          // outputs "func2 called" correctly
    expect(sample.func2).toHaveBeenCalled(); // fails
  });
});

テストは次のエラーで失敗します。

モック関数が呼び出されるはずでしたが、呼び出されませんでした。

func1代わりにスパイすると正しく動作しますが、によって呼び出される関数を使用しないのはなぜfunc1ですか?

4

1 に答える 1