【发布时间】:2019-01-24 18:38:52
【问题描述】:
我的组件方法中有一些代码using flatMap。代码在浏览器中运行良好,但在使用yarn test 运行代码时,flatMap 方法不存在。有没有人见过这样的东西?
● Click Events › should copy table data
TypeError: children.map(...).flatMap is not a function
181 | const dataKeys = children
182 | .map(({ $: { data: dataKey } }) => dataKey)
> 183 | .flatMap(k => k.split(LEVEL_DELIMITER));
| ^
编辑 - 可重现的示例:创建了一个 CRA 基础并添加了这个简单的测试:
it('can flatMap', () => {
[1, 2, 3, 4].flatMap(x => [x * 2]);
});
遇到同样的错误:
FAIL src/App.test.js
● can flatMap
TypeError: [1,2,3,4].flatMap is not a function
at Object.<anonymous>.it (src/App.test.js:12:16)
at new Promise (<anonymous>)
at Promise.resolve.then.el (node_modules/p-map/index.js:46:16)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
✓ renders without crashing (4ms)
✕ can flatMap
【问题讨论】:
-
你是在 Node 上运行测试,还是……?
-
你能在你的设置中做一个简单的测试,你只测试 flatMap 吗? ... 像这样:
[1, 2, 3, 4].flatMap(x => [x * 2])只是为了确保它不是其他东西(比如前一个链中的值等) -
是的,使用纱线。我的节点版本是
8.9.1 -
你用的是什么测试框架?
-
我正在使用
jest。我的同事刚刚找到了发生这种情况的原因。这是因为flatMap不被 NodeJS 支持 --> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript reactjs unit-testing ecmascript-6 yarnpkg