我有一個名爲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以及動作創建者函數返回併爲空對象{}。沒多大用處。
所以我的問題是,
爲什麼被退回空的對象?
什麼是做這個測試的正確方法?