Ich habe ein Tic Tac Toe Spiel mit Reaktivverdünnung erstellt.Redux Warnung erscheint nur in Tests
Ich verwende create-react-app.
Ich habe folgendes Geschäft:
import {createStore, combineReducers} from 'redux';
import gameSettingsReducer from './reducers/gameSettings.js';
import gameStatusReducer from './reducers/gameStatus.js';
const rootReducer = combineReducers({gameSettings: gameSettingsReducer,
gameStatus: gameStatusReducer});
export const defaultGameStatus = {
currentPlayerSymbol: "X",
turnNumber: 0,
currentView: "start-menu", //one of "start-menu", "in-game", "game-over"
winner: "draw", //one of "X", "O", "draw"
board: [["E", "E", "E"],
["E", "E", "E"],
["E", "E", "E"]],
lastMove: []
};
const store = createStore(rootReducer, {
gameSettings:{
playerSymbol: "X", //one of "X", "O"
difficulty: "easy" //one of "easy", "hard"
},
gameStatus: defaultGameStatus
});
export default store;
Alles läuft wie ich erwarte. Mit Ausnahme, wenn ich Tests leite (npm test
) folgende in der Konsole angezeigt:
console.error node_modules\redux\lib\utils\warning.js:14
No reducer provided for key "gameStatus"
console.error node_modules\redux\lib\utils\warning.js:14
Unexpected key "gameStatus" found in preloadedState argument passed to createStore. Expected to find one of the known reducer keys instead: "gameSettings". Unexpected keys will be ignored.
In den wenigen Tests, die ich habe, teste ich nicht einmal den Laden. Ich denke, das kommt beim Kompilieren des Codes auf. Ich habe versucht, console.log(gameStatusReducer)
vor der Root Reducer Linie setzen. Es zeigt, dass gameStatusReducer nicht definiert ist.
Da sowohl der gameSettingsReducer als auch der gameStatusReducer auf sehr ähnliche Weise erstellt werden, weiß ich nicht, woher dieser Fehler kommt und weiß nicht, wie ich das Problem weiter untersuchen soll. Dies zeigt sich nur beim Ausführen der Tests. Das Ausführen der App zeigt dieses Problem nicht an und die App funktioniert wie erwartet.
Also, die Fragen sind:
- Warum ist dies nur in den Tests angezeigt?
- Wie untersucht man, woher das Problem kommt?
Zeigen Sie uns den Code von ./reducers/gameStatus.js, es könnte dort ein Problem sein. – Yuval
Nicht sicher, ob ich diesen ganzen Code in die Frage setzen sollte: https://github.com/zelite/tic-tac-toe/blob/master/src/reducers/gameStatus.js Wie gesagt, der Fehler erscheint nur In der Prüfung. Wenn die App normalerweise im Browser ausgeführt wird, funktioniert der Reducer ordnungsgemäß. – zelite
Welcher Test gibt Ihnen Probleme? Ist das der 'tree.test.js' oder der' board.test.js'? –