Reactjs 异步操作创建者-Jest和Axios-超时-未调用异步回调

Reactjs 异步操作创建者-Jest和Axios-超时-未调用异步回调,reactjs,unit-testing,react-redux,jestjs,axios,Reactjs,Unit Testing,React Redux,Jestjs,Axios,我正在为我的异步操作创建者编写测试,但在测试运行时出现超时错误。我试过了 莫西奥斯 增加jest超时 模拟适配器 我现在正在再次尝试Moxios myTest(编辑以反映更改): 我得到的错误是:Timeout-在10000ms超时内未调用异步回调… 通过查看我的代码和覆盖率,我可以看到承诺没有得到使用,因为.then()部分没有根据我的代码覆盖率执行。那么,我的测试用例是否有问题?我曾开玩笑地环顾过其他人对Axios的实现,但我总是遇到这个超时错误 正在测试的代码: export cosn

我正在为我的异步操作创建者编写测试,但在测试运行时出现超时错误。我试过了

  • 莫西奥斯
  • 增加jest超时
  • 模拟适配器
我现在正在再次尝试Moxios

myTest(编辑以反映更改):

我得到的错误是:
Timeout-在10000ms超时内未调用异步回调…

通过查看我的代码和覆盖率,我可以看到承诺没有得到使用,因为.then()部分没有根据我的代码覆盖率执行。那么,我的测试用例是否有问题?我曾开玩笑地环顾过其他人对Axios的实现,但我总是遇到这个超时错误

正在测试的代码:

export cosnt getData= () => {
 return dispatch => {
  dispatch(isFetching())
  return dataApi.retrieveData().then(res => {
   dispatch(updateData(res))
  })
 }
}

我注意到有两件事可能会导致此错误:

  • url通配符在
    stubRequest
    中不起作用,您应该指定部分或全部uri(为外部api端点添加主机名)

    e、 g.
    moxios.stubRequest('/data/*',{status:201,response:mockData})

  • resolves
    不应该在那里,因为
    。然后上面的
    已经收回了承诺。 更新后应为:

    expect(store.getActions()).toEqual(expectedActions)

  • 我有一个类似于此测试用例的沙盒:


    您可以参考文件
    redux.spec.js
    。希望有帮助。

    您能发布您正在测试的代码,以便我们了解情况吗wrong@RedBaron,我添加了正在测试的代码。我也应该添加API函数吗?这是axiosThanks的标准GET,用于响应!我已经更改了
    stubRequest
    url以类似于您的示例,并删除了
    。在
    expect
    之后解析
    调用,但我仍然遇到相同的问题。您是否使用Axios在“retrieveData”函数中命中端点,因为moxios只能模拟Axios请求。如果通配符有效,请尝试在stubRequest中使用完整uri。谢谢您的帮助。由于我用Axios尝试的一切都不起作用,我最终切换到获取。
    
    export cosnt getData= () => {
     return dispatch => {
      dispatch(isFetching())
      return dataApi.retrieveData().then(res => {
       dispatch(updateData(res))
      })
     }
    }