Ich bin ein wenig neu zu testen Javascript und ich fragte mich, was ist der beste Weg, etwas zu testen, wo eine eindeutige ID generiert wird.Javascript Tests mit eindeutigen IDs
EDIT:
Ich will nicht wirklich die ID ich sicherstellen möchten, testen, ob die Aktion die richtigen Ergebnisse zurückgibt, wenn die createQuestion Funktion aufgerufen wird. Der Test wird jedoch fehlschlagen, da die ID niemals übereinstimmt, da sie in der Funktion generiert wird.
Mein aktueller Code sieht so aus.
//------- Action Creator --------//
export const createQuestion = function (inputType) {
const hasOptions = /radio/g.test(inputType);
return {
type: types.CREATE_QUESTION,
question: {
id: uuid.v1(),
priority: null,
title: null,
tip: null,
required: false,
isSaved: false,
hasOptions: hasOptions,
input: {
type: inputType,
options: []
}
}
};
};
//------- TESTS --------//
test('Question Actions', nest => {
nest.test('Create Question', function (assert) {
const msg = 'Questions was Created';
const question = {
id: 1,
priority: null,
title: null,
tip: null,
required: false,
isSaved: false,
hasOptions: false,
input: {
type: 'text',
options: []
}
};
const expectedAction = {
type: types.CREATE_QUESTION,
question
};
const actualAction = actions.createQuestion('text');
assert.deepEqual(actualAction, expectedAction, msg);
assert.end();
});
Da die eindeutige ID im Aktions Creator erzeugt wird, ist es unmöglich, spotten, wenn ich nicht die ID, nachdem die Funktion zurückkehrt mit der Aktion ändern.
Mit so etwas wie dieses
const changeUUID = obj => {
const newobj = {...obj};
newobj.question.id = 1;
return newobj;
};
Was ist mit der ID möchten Sie testen? – Hamms
Ich möchte nicht wirklich die ID testen Ich möchte sicherstellen, dass die Aktion die richtigen Ergebnisse zurückgibt, wenn die createQuestion -Funktion aufgerufen wird. Der Test wird jedoch fehlschlagen, da die ID niemals übereinstimmt, da sie in der Funktion generiert wird. – Enjayy