Redux 异步动作测试的目的是什么?

What is the purpose of Redux Async Action Testing?

谁能解释一下我们为什么要测试异步操作?我们希望确保什么有效?

所以在文档中,http://rackt.org/redux/docs/recipes/WritingTests.html,我们模拟了服务器请求。

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())

所以我们没有测试是否联系服务器。给定 200 正确的响应,我们正在测试是否发生了正确的操作顺序?

是的,此类测试的目的不是查看您的网络请求是否正常工作,而是确保您期望触发的操作序列实际触发。它还可用于确保您从服务器返回的数据是您的前端期望的正确格式。

如果您在实现代码后编写测试,这可能看起来微不足道,但假设在未来,您或其他开发人员决定对这些操作进行一些细微调整或完全删除一个。最坏的情况是,您的代码无声地失败,让您怀疑哪里出了问题。这些类型的测试可以帮助您避免此类问题。