그래서 같은 API를 호출을 트리거 addItemsToCollection
라는 작업이 있습니다'redux-api-middleware'및 [CALL_API]를 사용하는 redux 작업을 테스트하는 방법은 무엇입니까?
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);
});
그것은 수행합니다
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
]
}
};
}
나는이 작업을 위해 간단하게 테스트를 작성하려고
같은 생성되는 하지만 그것은 작업 생성자 함수뿐만 아니라 expectedAction에 대한 빈 객체 {}를 반환하고 있기 때문에 발생합니다. 별로 사용하지 않습니다.그래서 내 질문은,
왜 빈 객체가 반환되고있다?
이 테스트를 수행하는 적절한 방법은 무엇입니까?
const expectedAction =
{
[CALL_API]: {
endpoint: '/collections/1/items',
method: 'POST',
body: "[1,2,3]",
types:
[
ADD_ITEMS,
{ type: ADD_ITEMS_SUCCESS },
ADD_ITEMS_FAIL
]
}
};
당신은 결국 상수를 조롱하고 원시 데이터를 사용할 수 있습니다 : 당신이 테스트 무엇의 일부이기 때문에