gpt4 book ai didi

使用唯一 ID 进行 Javascript 测试

转载 作者:行者123 更新时间:2023-11-28 21:27:13 25 4
gpt4 key购买 nike

我对测试 javascript 有点陌生,我想知道在生成唯一 ID 的情况下测试某些东西的最佳方法是什么。

编辑:

我真的不想测试 ID,我想确保在调用 createQuestion 函数时操作返回正确的结果。但是测试会失败,因为 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 Creator 中生成的,所以不可能模拟,除非我在函数返回操作后更改 ID。

像这样

const changeUUID = obj => {
const newobj = {...obj};
newobj.question.id = 1;
return newobj;
};

最佳答案

除非您对具有特定值的 id 感兴趣,否则完全可以将其从 expectedAction 中排除。

assert.ok(actualAction.question.id);

delete actualAction.question.id;

assert.deepEqual(actualAction, expectedAction, msg);

关于使用唯一 ID 进行 Javascript 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36901708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com