我對測試JavaScript有點新,我想知道什麼是測試產生唯一ID的東西的最佳方法。使用唯一ID進行Javascript測試
編輯:
我真的不希望測試我要確保動作返回正確的結果,當createQuestion函數被調用的ID。但是測試會失敗,因爲在函數中生成的ID不會匹配。
我目前的代碼如下所示。
//------- 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();
});
由於唯一ID在Action創作者產生是不可能的,除非嘲笑我改變ID的功能與操作返回之後。
像這樣的東西
const changeUUID = obj => {
const newobj = {...obj};
newobj.question.id = 1;
return newobj;
};
你想測試的id是什麼? – Hamms
我真的不想測試ID,我想確保在調用createQuestion函數時該操作返回正確的結果。但是測試會失敗,因爲在函數中生成的ID不會匹配。 – Enjayy