自定义英雄传奇不会在玩笑中触发

问题描述


我有一个功能组件,该组件具有调度自定义动作的功能。我还注册一个自定义的传奇,以监听该自定义动作的调度。现在,我想在Jest的帮助下测试此组件。
在我的测试用例中,安装了组件后,该函数将调度自定义操作,并出现问题:自定义saga没有触发。

您对此问题有解决方案吗?
// MyComponent.js
export default myComponent = props => {
  const myFunction = () => {
    // dispatches Custom Action
    myAction(()=>{
      console.log('foo');
    });
  }

  return (<button data-test="btn" onClick={myFunction}>Click Me</button>)
}

// Action.js
const myAction = (callback) => {
  return {
    type: FIND_ONE,callback
  };
}

// customSaga.js
function* mySaga({ callback }) {
  try {
    //...
    callback();
  } catch (error) {
    //...
  }
}

export default function* customSaga() {
  yield takeEvery(FIND_ONE,mySaga);
}

// Component.test.js
describe('`myComponent`',() => {
  const wrapper = mount(
    <TestContext>
      <MyComponent />
    </TestContext>,);

  test('Run myFunction',() => {
    const button = wrapper.find(`[data-test="btn"]`);
    button.simulate('click');
  });
});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)