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

时间:2015-12-29 17:22:42

标签: javascript unit-testing reactjs redux

有人可以解释为什么我们测试异步操作吗?我们希望确保什么工作?

因此,在文档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的正确响应?

1 个答案:

答案 0 :(得分:4)

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

如果您在实施代码之后编写测试,这可能看起来微不足道,但是说在未来,您或其他开发人员决定对这些操作进行一些轻微调整或完全删除一个。在最糟糕的情况下,您的代码会无声地失败,让您不知道出了什么问题。这些类型的测试可以帮助您避免这类问题。

相关问题