在tryux-catch块中或外部,在redux-saga中进行api调用好吗?

时间:2019-03-21 15:52:15

标签: reactjs unit-testing redux-saga

我的saga.ts文件中具有以下功能:

export function* getProductsList(action) {
   yield put(productsListAttempt(true));

   const productsList = yield api.getProductsList();

   try {

     yield put(productsListSuccess(productsList));

   } catch {

     yield put(productsListError('Error occured'));
   }
}

我正在尝试为此功能编写单元测试。我遇到的问题是,每当我执行功能失败的测试时,它都无法顺利通过。它永远不会根据catch块给出结果。但是,当我在try块中放置以下行:const productsList = yield api.getProductsList();时,测试就按预期通过了。

-将api调用放在try块之外真的好吗?为什么这样?

1 个答案:

答案 0 :(得分:0)

将调用放入try / catch块中没有任何错误,我在我的项目中也这样做,这很好,因为调用可能会失败,并且try / catch可以让您根据定义来管理此错误情况