开玩笑-测试eventChannel Redux-saga

时间:2019-10-03 00:17:08

标签: javascript jestjs redux-saga redux-saga-test-plan

我有一个带有2个函数的sagas文件,一个是saga本身,另一个是我的saga调用的函数,该函数使用eventChannel库中的redux-saga

export const hardwareBackChannel = () => eventChannel((emit): {} => {
  BackHandler.addEventListener('hardwarePress', () => {
    emit(true);
    return true; 
  });
  return (): * => {
    BackHandler.removeEventListener();
  };
});

export function* handleBackButtonEvent() {
  yield put(hardwareBackChannel());
}

我能够通过以下方式成功测试handleBackButtonEvent

  describe('handleBackButtonEvent', () => {
    it('should call back button pressed action', () => {
      testSaga(handleBackButtonEvent)
        .next()
        .put(
          hardwareBackChannel(),
        );
    });
  });

但是我无法弄清楚如何使用hardwareBackChannel测试testSaga本身。有没有办法做到这一点?如果没有,如何在测试中覆盖这部分代码?

我整天都在尝试搜索,但是我发现只是带有测试我的传奇故事的线程,而不是我的hardwareBackChannel函数本身。

感谢前进

0 个答案:

没有答案