首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将未满足的期望放入redux-saga-test计划

将未满足的期望放入redux-saga-test计划
EN

Stack Overflow用户
提问于 2019-01-03 16:23:18
回答 1查看 2.6K关注 0票数 0

因此,我有一个saga,它显示了一些要在表中显示的数据。

动作创建者如下所示

代码语言:javascript
复制
export const fetchInstanceDataSetAssocSuccess = (records) => {
  return {
    type: actionTypes.FETCH_INSTANCE_DATASETS_ASSOC_SUCCESS,
    records: records
  }
 }

export const fetchInstanceDataSetAssocFailed = (error) => {
  return {
    type: actionTypes.FETCH_INSTANCE_DATASETS_ASSOC_FAILED,
    error: error
  }
}

export const fetchInstanceDataSetAssocStart = () => {
  return {
   type: actionTypes.FETCH_INSTANCE_DATASETS_ASSOC_START
  }
}

export const fetchInstanceDataSetAssoc = () => {
   return {
     type: actionTypes.FETCH_INSTANCE_DATASETS_ASSOC_INITIATE
   }
}

我的传奇故事如下

代码语言:javascript
复制
    function * fetchInstanceDataSetAssocSaga (action) {
      yield put(instanceDataSetAssocActions.fetchInstanceDataSetAssocStart())
      const useMockData = yield constants.USE_MOCK_DATA
      if (useMockData) {
        yield delay(constants.MOCK_DELAY_SECONDS * 1000)
      }
      try {
        const res = (useMockData)
         ? (yield constants.INSTANCE_DATASET_ASSOC)
         : (yield call(request, {url: 
         API_URLS.INSTANCE_DATASET_ASSOC_API_ENDPOINT, method: 'GET'}))

    yield put(instanceDataSetAssocActions.fetchInstanceDataSetAssocSuccess(res.data))
    } catch (error) {
       yield 
put(instanceDataSetAssocActions.fetchInstanceDataSetAssocFailed(error))
  }
}

监视传奇的行动如下所示

代码语言:javascript
复制
export function * watchInstanceDataSetAssocSaga () {
  yield takeEvery(actionTypes.FETCH_INSTANCE_DATASETS_ASSOC_INITIATE, 
  fetchInstanceDataSetAssocSaga)
}

测试用例如下

代码语言:javascript
复制
  describe('load instance dataset assoc table', () => {
  test('update state with  instance-dataset records for landing page',() => {
    const finalState = {
      records: constants.INSTANCE_DATASET_ASSOC.data,
      loading: false,
      error: false
    }
    const requestParam = {url: API_URLS.INSTANCE_DATASET_ASSOC_API_ENDPOINT, method: 'GET'}
    return expectSaga(watchInstanceDataSetAssocSaga)
      .provide([[call(request,requestParam),constants.INSTANCE_DATASET_ASSOC]])
      .withReducer(instanceDataSetAssoc)
      .put(instanceDataSetAssocActions.fetchInstanceDataSetAssocStart())
      .put(instanceDataSetAssocActions.fetchInstanceDataSetAssocSuccess(constants.INSTANCE_DATASET_ASSOC.data))
      .dispatch(instanceDataSetAssocActions.fetchInstanceDataSetAssoc())
      .hasFinalState(finalState)
      .silentRun()
  })
})

我得到了下面的错误。

代码语言:javascript
复制
 SagaTestError:
put expectation unmet:
at new SagaTestError (node_modules/redux-saga-test-plan/lib/shared/SagaTestError.js:17:57)
  at node_modules/redux-saga-test-plan/lib/expectSaga/expectations.js:63:13
  at node_modules/redux-saga-test-plan/lib/expectSaga/index.js:572:7
      at Array.forEach (<anonymous>)
  at checkExpectations (node_modules/redux-saga-test-plan/lib/expectSaga/index.js:571:18)

我正确地遵循了文档,但仍然收到上面的错误。

EN

回答 1

Stack Overflow用户

发布于 2019-04-16 23:35:54

也许为时已晚,但我找到了答案,也许它会帮助你这个错误可能会因为库超时而发生尝试用.run(false)原始链接https://github.com/jfairbank/redux-saga-test-plan/issues/54关闭超时

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54018622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档