我正在尝试用 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
会指向窗口。
有人知道如何解决这个问题吗?
最佳答案
此错误并不是 __extends
为 null
,而是描述了两种情况之一。
要么您忘记包含包含基类的文件,要么您已将其包含在包含子类的文件之后。
实际例子:
<!-- 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/