首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅仅为了测试而创建一个不同的存储库是错误的吗?

仅仅为了测试而创建一个不同的存储库是错误的吗?
EN

Stack Overflow用户
提问于 2017-01-09 17:55:36
回答 1查看 170关注 0票数 1

我想要创建sagas + reducers + actions的集成测试,但是我看到的关于测试redux的所有文档都使用了redux-mock-store函数。

代码语言:javascript
复制
import configureMockStore from 'redux-mock-store'

有人能给出一个解释为什么这是,为什么不只是使用一个完整的商店?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-09 19:22:38

如果这个对象是仅为测试目的而创建的redux存储的副本,那么创建一个完整的Redux存储用于测试并不是错误的。如果您创建的模拟商店不是redux存储的精确副本,那么就错了。

Redux模拟存储的主要优点是它使测试异步Redux操作和中间件.变得更加容易。

正如Dan Abramov在测试调用api的异步redux操作时所说的-

对于使用Redux或其他中间件的异步操作创建者,最好完全模拟Redux存储进行测试。您仍然可以在模拟存储中使用applyMiddleware(),如下所示(您可以在redux-模拟存储中找到以下代码)。您还可以使用nock来模拟HTTP请求。

libary的api中一个非常有用的部分,即获得已分派的历史操作数组的能力。

store.getActions() =>操作:数组

这对于测试将在一段时间内分派多个操作的异步操作特别有用。

从文档中获取的一个示例:

代码语言:javascript
复制
// Test example with mocha and expect 
it('should dispatch action', () => {
  const initialState = {}
  const addTodo = { type: 'ADD_TODO' }

  const store = mockStore(initialState)
  store.dispatch(addTodo)

  const actions = store.getActions()

  expect(actions).toEqual([addTodo])
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41553987

复制
相关文章

相似问题

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