我们如何模拟Redux异步操作的fetch
How do we mock fetch for Redux Async Actions?
在Redux的写入测试部分,如果store.dispatch
实际上在调用actions.fetchTodos
,store.dispatch(actions.fetchTodos())
如何不调用fetch
方法?
it('creates FETCH_TODOS_SUCCESS when fetching todos has been done', (done) => {
nock('http://example.com/')
.get('/todos')
.reply(200, { todos: ['do something'] })
const expectedActions = [
{ type: types.FETCH_TODOS_REQUEST },
{ type: types.FETCH_TODOS_SUCCESS, body: { todos: ['do something'] } }
]
const store = mockStore({ todos: [] }, expectedActions, done)
store.dispatch(actions.fetchTodos())
})
它正在调用fetch
方法,但nock
行:
nock('http://example.com/')
.get('/todos')
.reply(200, { todos: ['do something'] })
截取HTTP请求,以便fetch
简单地返回正确的数据(而不实际到达端点)。
另一种选择是将对fetch
的调用提取到另一个模块(比如api
)中,并在动作创建者中使用它。在测试中,您只需在api
模块上模拟出适当的方法。
相关文章:
- 无法在Redux中测试异步操作
- 当我在异步操作Redux上开始单元测试时,没有定义错误承诺
- Redux 中的异步操作
- Redux - 智能组件 - 在挂载组件之前如何处理异步操作
- 反应 Redux 异步操作在完成函数后调用下一个函数
- 在redux中使用thunk中间件比使用常规函数作为异步操作创建者有什么好处
- 我们如何模拟Redux异步操作的fetch
- 我们如何在Redux异步操作中模拟fetch
- Redux异步操作测试的目的是什么
- 将回调函数传递给redux异步操作是否被认为是好的做法?
- Redux基于登录的异步操作
- Redux异步操作处理
- 如何在redux-thunk中断言在异步操作内部调度的异步操作
- React Redux和Redux -observable在异步操作完成后使用路由器导航到另一个页面
- Redux异步中间件操作手头没有api调用所需的状态
- 如何使用React/Redux (este stack)进行异步操作
- 如何用redux从异步操作中捕获错误
- 如何在使用Redux进行异步操作调度后检索状态数据
- 使用Redux的异步操作
- 如何取消React/Redux中挂起的异步操作