小编Hsu*_*Jen的帖子

用笑话捕获错误时如何测试Redux-Saga

大家。我用玩笑框架测试传奇。我可以在正常情况下测试我的传奇。但是我想测试catch()中的代码,因此我必须模拟一个错误以触发catch。我在redux-saga官方文档和其他stackoverflow答案中找到了一些解决方案。但是我仍然有问题。

当我像下面的示例一样在saga.test.js中使用throw()时,它将显示“ Error [object Object] throwed”。因此它不能真正通过此测试。我没看到有人问同样的问题。有人可以帮我吗?非常感谢。

错误结果屏幕:

img1

api.js

const api = {
  fetchProductAPI() {
    return 'iphone';
  },
};
export default api;
Run Code Online (Sandbox Code Playgroud)

saga.js

import { call, put } from 'redux-saga/effects';
import api from './api';

export default function* fetchProduct() {
  try {
    yield call(api.fetchProductAPI);
    yield put({ type: 'PRODUCTS_RECEIVED', product: 'iphone' });
  } catch (error) {
    yield put({ type: 'PRODUCTS_REQUEST_FAILED', error });
  }
}
Run Code Online (Sandbox Code Playgroud)

saga.test.js

import { put, call } from 'redux-saga/effects';
import fetchProduct from './saga';
import api from './api';

describe('fetchProduct()', () => …
Run Code Online (Sandbox Code Playgroud)

error-handling generator saga jestjs redux-saga

3
推荐指数
1
解决办法
2446
查看次数

标签 统计

error-handling ×1

generator ×1

jestjs ×1

redux-saga ×1

saga ×1