我的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块之外真的好吗?为什么这样?
答案 0 :(得分:0)
将调用放入try / catch块中没有任何错误,我在我的项目中也这样做,这很好,因为调用可能会失败,并且try / catch可以让您根据定义来管理此错误情况