javascript - 使用 Jest ("Cannot read property ' __extends' of null 进行单元测试 typescript 类”)

标签 javascript unit-testing typescript jestjs

我正在尝试用 Jest 测试类“a”(继承自类“b”)。 Typescript 编译器在“a”的文件编译后的 javascript 前面加上

var __extends = this.__extends || function (d, b) { ... };

不幸的是this在运行单元测试时为空,所以我得到了

Cannot read property '__extends' of null

我使用 jest-cli@0.2.1 运行测试,使用 typescript@1.4.1 编译我的 typescript 文件。 通常,当文件在浏览器中运行时,this 会指向窗口。

有人知道如何解决这个问题吗?

最佳答案

此错误并不是 __extendsnull,而是描述了两种情况之一。

要么您忘记包含包含基类的文件,要么您已将其包含在包含子类的文件之后。

实际例子:

<!-- Base class first -->
<script src="b.js"></script>
<!-- Now the sub class -->
<script src="a.js"></script>
<!-- Now things that depend on the sub class -->
<script src="tests.js"></script>

如果您以任何其他顺序执行此操作,则会遇到问题。

如果您要编译为单个文件,则需要确保引用注释是为了确保类在组合文件中以正确的顺序显示。

关于javascript - 使用 Jest ("Cannot read property ' __extends' of null 进行单元测试 typescript 类”),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28174083/

相关文章:

Javascript 全名正则表达式问题

Javascript 代码修改...简单错误?

javascript - AWS : Layer code not found when using "sam invoke local"

javascript - 根据其嵌套数组值过滤数组

javascript - Angular 进口管道无法识别

javascript - 使用 jQuery 在单击时换出主体背景图像并在加载时随机化

javascript - 增加 onclick 事件的字体大小

Android Studio 单元测试 : unable to find instrumentation OR class not found ex

java - 在 toString 方法中将对象转换为特定数据类型

c# - TDD 可以强制创建 "fake"依赖项