Wie man eine importierte benannte Funktion in Jest verspottet, wenn das Modul entsperrt ist

Ich habe das folgende Modul, das ich in Jest testen möchte:

// myModule.js

export function otherFn() {
  console.log('do something');
}

export function testFn() {
  otherFn();

  // do other things
}

Wie oben gezeigt, exportiert es einige benannte Funktionen und vor allemtestFn VerwendetotherFn.

m Scherz, wenn ich meinen Komponententest für @ schreitestFn, Ich möchte das @ verspottotherFn Funktion, weil ich keine Fehler in @ wiotherFn, um meinen Komponententest für @ zu beeinflusstestFn. Mein Problem ist, dass ich nicht sicher bin, wie ich das am besten machen kann:

// myModule.test.js
jest.unmock('myModule');

import { testFn, otherFn } from 'myModule';

describe('test category', () => {
  it('tests something about testFn', () => {
    // I want to mock "otherFn" here but can't reassign
    // a.k.a. can't do otherFn = jest.fn()
  });
});

Jede Hilfe / Einsicht wird gebeten.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage