私は、javascriptをテストするのにちょっと新しく、ユニークなIDが生成された場所をテストする最善の方法は何か不思議でした。ユニークIDを使用したJavascriptテスト
EDIT:
私は本当に私は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は、私は関数がアクションを返した後、IDを変更しない限り模擬することは不可能であるアクションCreatorで生成されるため。この
const changeUUID = obj => {
const newobj = {...obj};
newobj.question.id = 1;
return newobj;
};
あなたがテストしたいIDはどうですか? – Hamms
IDを実際にテストする必要はありません。createQuestion関数が呼び出されたときにアクションが正しい結果を返すようにしたいと思います。しかし、IDは関数内で生成されているので決して一致しないため、テストは失敗します。 – Enjayy