Ihre __tests __/TodoStore-test.js Datei: https://github.com/facebook/flux/blob/master/examples/flux-todomvc/js/stores/tests/TodoStore-test.jsDrehen ein ES5 Reagieren + Flux Dispatcher Test in ES6 nicht
Und ihre js/Dispatcher/AppDispatcher.js Datei: https://github.com/facebook/flux/blob/master/examples/flux-todomvc/js/dispatcher/AppDispatcher.js
in ihrem Fall ist der Disponent einfach:
var Dispatcher = require('flux').Dispatcher;
module.exports = new Dispatcher();
Und in ihrem Test des beforeEach
es setzt:
AppDispatcher = require('../../dispatcher/AppDispatcher');
Jetzt in meinem eigenen Projekt, würde ich ES6 Weg Dinge nutzen möchten zu tun. Ich bin mir nicht sicher wie. Die Unterschiede zwischen und import
entgehen mir.
Mein Dispatcher:
import { Dispatcher } from 'flux';
var dispatcher = new Dispatcher({
logLevel: 'ALL'
});
export default dispatcher;
Welche-als ein Stück in der App-Werk in meiner App in Ordnung, aber das require
Beispiel oben ist mit ihm nicht.
Der Teil des Tests, der auf ES6 import
konvertiert werden muss:
beforeEach(function() {
AppDispatcher = require('./../src/dispatcher/dispatcher');
TodoStore = require('./../src/stores/TodoStore');
callback = AppDispatcher.register.mock.calls[0][0];
});
Aber natürlich, das nicht funktioniert:
beforeEach(function() {
AppDispatcher = import './../src/dispatcher/dispatcher';
// snip
});
Oder:
import dispatcher from './../src/dispatcher/dispatcher';
beforeEach(function() {
AppDispatcher = new dispatcher();
// snip
});
Ich mache nur durch Versuch und Irrtum jetzt und es dauert viel zu viel Zeit, nur um einen Test zu schreiben.
Mein Denkprozess:
Sie verlangen, was auch immer ihre Dispatcher Dateiausgaben, die immer ein new Dispatcher()
.
In meinem Fall erstelle ich eine new Dispatcher
und export
diese Instanz. Stattdessen müsste ich es wahrscheinlich nicht in der Dispatcher-Datei instanziieren, aber überlasse das export
, z. B. export default new Dispatcher()
, aber das sieht schrecklich aus.
Aber egal was ich versuche, ich erhalte immer Fehler wie:
TypeError: Cannot read property 'register' of undefined
Hat jemand eine Ahnung, wie dieses oben zum Laufen? Viel verpflichtet!