"Definieren, ist nicht definiert" im Scherz beim testen es6-Moduls mit RequireJS Abhängigkeit
Habe ich eine Scherz-test-suite, die nicht ausgeführt werden, weil die Komponente, die Sie versucht zu testen, hängt von einem RequireJS-Modul. Hier ist der Fehler, die ich bin zu sehen:
FAIL __tests__/components/MyComponent.test.js
● Test suite failed to run
ReferenceError: define is not defined
at Object.<anonymous> (node_modules/private-npm-module/utils.js:1:90)
Die Komponente verfügt über die folgenden import:
import utils from 'private-npm-module';
Und die private-npm-module
eingerichtet ist, in etwa so:
define('utils', [], function() {
return {};
});
Wenn MyComponent
ist transpiled mit babel und im browser ausgeführt werden, wird die Abhängigkeit korrekt arbeitet. Dieses Problem betrifft nur die unit-test. Wie kann ich meine test-suite laufen auf eine Komponente mit einem RequireJS-Abhängigkeit?
Ich bin mit babel-jest
als meine scriptPreprocessor
im Paket.json ist Scherz config. Ich bin mit Scherz-v0.15.1.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, RequireJS ist nicht unterstützt durch Scherz. In meinem speziellen Fall war es am einfachsten und angemessensten zu verspotten, meine Abhängigkeit an der Spitze der
MyComponent.test.js
:Diese Weise, wenn
MyComponent
geladen ist, wird dessen Abhängigkeit bereits verspottet, so wird es nicht versuchen, laden der RequireJS-Modul.Wenn Sie wirklich tun müssen, laden Sie Ihre RequireJS-Modul für den test, es kann möglich sein, verwenden Sie Scherz ist
transform
- Konfiguration wickeln Ihre Umsetzung in einem RequireJS zu ES6-Konverter.