undefined Ich habe die folgende JavaScript-Funktion, die Teil eines größeren Skript ist:Javascript-Funktion zurückkehr statt Nummer
const sub = 'L';
export function getFeedData (sub) {
var feedId;
switch (sub) {
case '1': case '2': case '3': case '4': case '5': case '6': case 'S':
feedId = 1;
break;
case 'A': case 'C': case 'E':
feedId = 26;
break;
case 'N': case 'Q': case 'R': case 'W':
feedId = 16;
break;
case 'B': case 'D': case 'F': case 'M':
feedId = 21;
break;
case 'L':
feedId = 2;
break;
case 'G':
feedId = 31;
break;
}
if (feedId === 2) {
var feed = require('./MockData');
}
return {
feed: feed,
feedId: feedId
};
}
ich jede andere Funktion in diesem Skript getestet haben, und sie arbeiten richtig. Für diese Funktion, hier ist mein Test (ich benutze Jest, weil dies Teil einer größeren React App ist).
import React from 'react';
import {getFeedData} from '../mocks/apiMock';
it('returns 2 as the feedId when L is sub parameter for getFeedData',() => {
expect(getFeedData.feedId).toBe(2);
});
it('outputs feed from getFeedData',() => {
expect(getFeedData.feed).toBeDefined;
});
Letzteres dieser Tests ist vorbei - nicht sicher, warum passiert das ist.
Die erste ist, worüber ich mehr besorgt bin. Es wird undefined als getFeedData.feedId zurückgegeben und daher fehlgeschlagen. Ich bin Autodidakt mit JavaScript, und ich bin mir sicher, dass ich einen dummen Fehler in dieser Funktion mache, und deshalb ist getFeedData.feedId nicht definiert. Wenn jemand diesen dummen Fehler aufzeigen könnte, würde ich es sehr schätzen.
Das korrigiert meine Testergebnisse, danke für die Erklärung. Leider bin ich mir jetzt nicht sicher, warum das gesamte Skript eine unerwartete Ausgabe hat. Ich denke, ich muss meine Scopes und Schließungen ein wenig üben. Aber das ist eine Frage für eine andere Zeit. – bkula