我有一个名为addItemsToCollection
动作触发调用像这样的API:如何测试使用'redux-api-middleware'和[CALL_API]的redux动作?
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`,
method: 'POST',
body: JSON.stringify(itemIds),
types:
[
ADD_ITEMS,
{ type: ADD_ITEMS_SUCCESS },
ADD_ITEMS_FAIL
]
}
};
expect(addItemsToCollection(collectionId, itemIds)).toEqual(expectedAction);
});
它确实但是那是因为它正在为expectedAction以及动作创建者函数返回并为空对象{}。没多大用处。
所以我的问题是,
为什么被退回空的对象?
什么是做这个测试的正确方法?