Ben şöyle bir API çağrısı tetikler addItemsToCollection
denilen bir eylem vardır:'Redux-api-middleware' ve [CALL_API] kullanan redux eylemleri nasıl test edilir?
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);
});
O yapar:
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
]
}
};
}
Bu eylem için sadece bir test yazmaya çalışıyorum
gibi yaratılıyor pass, ancak actionAcute fonksiyonu için olduğu gibi beklenenActionAction için boş nesneyi {} döndürdüğü için boştur. Fazla kullanım.Yani benim sorular burada,
Neden boş nesneler iade ediliyor?
Bu testi yapmanın uygun yolu nedir?
const expectedAction =
{
[CALL_API]: {
endpoint: '/collections/1/items',
method: 'POST',
body: "[1,2,3]",
types:
[
ADD_ITEMS,
{ type: ADD_ITEMS_SUCCESS },
ADD_ITEMS_FAIL
]
}
};
Sonunda sabitleri alay ve ham verileri kullanabilirsiniz: test ettiğiniz şeyin bir parçası olduğundan