Ich verwende WebPack + React + Jest für meine Anwendung und ich habe resolve.alias = { app: "/path/to/app" }
in meiner Konfigurationsdatei festgelegt.
In React kann ich diesen Pfad verwenden ("app / component") und die Datei unter "/path/to/app/component.js" korrekt abrufen.
Beim Ausführen von JEST-Tests wird dieser Alias weder in den Tests noch für die importierten Module erkannt. All das funktioniert beim Ausführen der App, aber nicht bei den Tests mit jest-cli.
jest-cli
lebt in einer von Webpack getrennten Welt, so dass es nicht so funktioniert.
Verwenden Sie babel-plugin-modul-resolver , um mit Aliasing umzugehen.
Jestpack könnte helfen, da Sie damit Ihre Tests nach der Erstellung mit Webpack ausführen können. p>
Ich benutze Mokka, um zu testen, aber ich denke, es funktioniert auch für Scherz.
Sie sollten 2 Pakete verwenden: Mock-Require und < a href="https://www.npmjs.com/package/proxyquire"> proxyquire .
Angenommen, Sie haben eine js-Datei wie folgt:
app.js
%Vor%Und Ihr Testcode sollte so schreiben:
app.test.js
%Vor%Dateibaum
%Vor%Spotte zuerst den Alias-Pfad, indem du in der before-Funktion mock-require machst, und spiegle dein Test-Objekt mit proxyquire in beforeEach-Funktion.
Tags und Links javascript unit-testing reactjs webpack jestjs