使用 Jest 进行测试 - TypeError:无法读取未定义的属性“forEach”

Posted

技术标签:

【中文标题】使用 Jest 进行测试 - TypeError:无法读取未定义的属性“forEach”【英文标题】:Testing with Jest - TypeError: cannot read property 'forEach' of undefined 【发布时间】:2018-11-27 21:04:24 【问题描述】:

我创建了一个示例项目来使用 Jest 编写测试。我遵循了一些教程。

我在打字稿文件中添加了一个简单的计算函数,如下所示。

Calc.cs

 export class Calc 
    public add(num1: number, num2: number) : number 
      return num1 + num2;
    
    public subtract(num1: number, num2: number) : number 
      return num1 - num2;
    
  

然后添加如下测试文件。

import  should  from 'chai';
import  Calc  from './Calc';
should();


let calc = new Calc();
test('adds 1 + 2 to equal 3', () => 
    expect(calc.add(1, 2)).toBe(3);
  );

然后我尝试运行如下所述的测试。然后我得到了这个错误。

PS C:TestProject> npm t

typescriptseleniumtestproject@1.0.0 测试 C:TestProject 开玩笑

C:TestProject\node_modules\jest-haste-map\build\crawlers\node.js:49 names.forEach(文件 => ^

TypeError:无法读取未定义的属性“forEach” 在 default.readdir (C:\TestProject\node_modules\jest-haste-map\build\crawlers\node.js:49:13) 在 go$readdir$cb (C:\TestProject\node_modules\jest\node_modules\graceful-fs\graceful-fs.js:149:14) 在 FSReqWrap.oncomplete (fs.js:135:15) npm ERR!测试失败。有关详细信息,请参见上文。

然后我浏览到显示错误的文件,并在下面提到。

node_modules\jest-haste-map\build\crawlers\node.js

【问题讨论】:

请编辑您的问题并提供一些您自己的代码 我稍微编辑了帖子并添加了小代码。 【参考方案1】:

可能导致此错误的一个问题:检查您是否位于正确的目录中。

【讨论】:

以上是关于使用 Jest 进行测试 - TypeError:无法读取未定义的属性“forEach”的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法在使用 ReactDOM 的 Jest 测试中读取未定义的属性“渲染”

TypeError:运行 Jest 单元测试时,mxgraph 不是函数

渲染中的错误:“TypeError:无法读取未定义的属性'_t'”在使用 Jest 的单元测试中

使用 Jest、AudioContext 进行测试和模拟

为啥这些 Jest 测试失败了? TypeError:无法读取未定义的属性“应用”

TypeError:state.userInfo 在 Jest 测试中不可迭代