我有一个带有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
函数本身。
感谢前进