测试 – 如何测试使用’redux-api-middleware’和[CALL_API]的re
发布时间:2020-12-15 20:31:26 所属栏目:百科 来源:网络整理
导读:我有一个名为addItemsToCollection的动作,它会触发对API的调用,如下所示: import {CALL_API} from 'redux-api-middleware';export function addItemsToCollection(collectionId,itemIds){ return {[CALL_API]: { endpoint: `/collections/${collectionId}/i
我有一个名为addItemsToCollection的动作,它会触发对API的调用,如下所示:
import {CALL_API} from 'redux-api-middleware'; export function addItemsToCollection(collectionId,itemIds) { return {[CALL_API]: { endpoint: `/collections/${collectionId}/items`,method: 'POST',body: JSON.stringify(itemIds),types: [ ADD_ITEMS,{ type: ADD_ITEMS_SUCCESS },ADD_ITEMS_FAIL ] } }; } 当我尝试编写一个测试时,只是为了创建这个动作,例如: it('should create an action to add items to a collection',() => { const collectionId = 1; const itemIds = [1,2,3]; const expectedAction = { [CALL_API]: { endpoint: `/collections/${collectionId}/items`,ADD_ITEMS_FAIL ] } }; expect(addItemsToCollection(collectionId,itemIds)).toEqual(expectedAction); }); 它确实通过了,但这是因为它正在为expectedAction返回并返回空对象{}以及从动作创建器函数返回.没多大用处. 所以我的问题是, 为什么要返回空对象? 进行此测试的正确方法是什么? 解决方法
CALL_API是一个符号.将对象传递给console.log时,它们不会显示.如果要查看对象中的键,可以执行Object.getOwnPropertySymbols(expectedAction),也可以使用console.log(expectedAction [CALL_API]),然后获取该对象. (
http://exploringjs.com/es6/ch_symbols.html)
您正在测试它.如果您要使用空对象,则不匹配.如果使用具有不同符号的对象,则它将不匹配. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |