2

这是对 React DOM 单元测试的笑话教程示例的一个非常简单的修改。我有一个计数器组件,我想测试它是否有效。你可以在底部看到我的提交。

错误: SyntaxError: Unexpected token {

.test.js 文件中只有 2 { ,当我jsx ={1}用 ="1" 删除替换它时,它不会删除错误。另一个 { 在函数调用中() => {

更新 1(对答案的回应)

我已将 .test.js 文件更改为 test.tsx ,并对计数器组件进行了更改以允许字符串删除 jsx {} 以及{除函数构造函数之外的唯一其他内容。

https://github.com/Falieson/react15-meteor1.5-typescript2.4/commit/36a327e79700b5532258f7fb8a171122ed260329

更新 2

我通过试图揭露这个问题发现这个错误只发生在我的工作机器上,而不是我的个人开发机器上。这是适用于我的机器但不适用于我的工作机器的代码。 https://github.com/Falieson/react-typescript-meteor

更新 3 我在跑步时没有从开玩笑中得到任何问题,npm run test:jest但是当我跑步时我meteor npm run test:jest遇到了这个问题,要去流星板上询问。

4

2 回答 2

0

对于遇到此问题的任何其他人,我建议将 Meteor 更新到最新的 1.6-beta*,这样您就可以获得节点 8,而不是依赖节点 4。正如 OP 中链接的流星论坛主题中所讨论的,节点 4 是问题所在。

于 2017-08-10T16:55:57.027 回答
0

您的测试是js导入打字稿文件的ts文件。根据您的配置,您有

'^.+\\.jsx?$': 'babel-jest'

我猜这将使用 babel-jest 解析器而不是 typescript 编译器。你必须将你的测试写成ts文件,让 typescript 发挥它的魔力。

于 2017-08-04T19:52:17.630 回答