【发布时间】:2021-03-11 10:55:14
【问题描述】:
我有很多遵循以下格式的选择语句:
const selector = (identifier) => (state) => state.getIn(['ui', identifier, 'object']);
上述选择器和普通选择器的区别在于,我传递了一个标识符来填充getIn 调用。所以不要做yield select(selector),而是做yield select(selector(identifier))
这很好用,但我似乎无法对其进行单元测试。
通常你可以得到预期的效果 select(selector) 并断言等于那个,例如
expect(generator.next().value).to.deep.equal(select(selector));
但是当我尝试传递标识符时这不起作用:
expect(generator.next().value).to.deep.equal(select(selector(identifier)));
我假设它与我调用函数时有关,它返回不同的实例?但我会认为深度平等可以解决这个问题。不幸的是 - 我收到的错误消息没有提供任何帮助。
AssertionError: expected { Object (@@redux-saga/IO, SELECT) } to deeply equal { Object (@@redux-saga/IO, SELECT) }
有人试过以上方法吗?或关于如何测试的建议?
谢谢!
【问题讨论】:
-
这个断言应该失败,因为原因。
标签: reactjs redux react-redux redux-saga