问题标签 [ts-jest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
822 浏览

angular - Jest - Angular 9 - 类构造函数 SomeComponentClass 不能在没有'new'的情况下被调用

我正在将我们的 karma 测试迁移到旧 Angular 9 应用程序中的 Jest,并且面临几个测试失败的问题,并出现以下类型的异常:

TypeError:没有'new'就不能调用类构造函数SomeComponentClass

我遵循了 Jest 设置指南并参考了其他一些独立指南,我的设置如下:

jest.config.js

测试设置.ts

tsconfig.spec.js(位于 src 文件夹中)

tsconfig.json(位于 src 文件夹中)

tsconfig.json(在项目的根目录中)

babel.config.js

我也在我的 babel 配置中尝试了这个:

我不知道如何解决这个问题,从我在各个地方读到的内容来看,这听起来像是babel\tsconfig设置以及它如何转换es2015类(我认为),但我就是无法解决。

有些人可以提供任何线索,说明我可能需要做些什么来克服这种类型的错误?

谢谢

0 投票
3 回答
7939 浏览

typescript - 运行玩笑时打字稿路径无法解析?

尝试使用这些说明将此项目转换为玩笑。除了使用配置的文件外,我一切正常:paths

看起来好像在运行测试时导入语句没有解析,并且记录如下:

有没有办法让 jest/ts-jest@paths在解析导入时包含在内?

0 投票
1 回答
3401 浏览

typescript - ts-jest - 运行 jest 时从类型 (.d.ts) 中声明 const 值未定义

我对使用 Typescript 和 Jest 比较陌生,而且我一直遇到一个问题,我在@types/screeps. 这些看起来像这样:

每当我在测试中使用这些常量时,我​​都会得到一个ReferenceError: OK is not definedinside Jest。如果我确实在测试中声明了该值,则错误的位置将移动到正在测试的文件中。

我做了一些谷歌搜索,我在 ts-jest 存储库中发现了这个特殊的错误:https ://github.com/kulshekhar/ts-jest/issues/112

但是,我很难跟踪讨论,因为我几乎没有使用过 Typescript,而且我真的不明白如何自己解决这个问题。我想要的是能够在环境范围内声明这些值并在我的测试中使用它们。每当使用 rollup 编译代码时,该类型就会被拾取(因为它是运行时 Screeps 中全局可用的值,并且编译后的输出很好)。我不介意调整 tsconfig.json 或复制文件/一起破解解决方案。

我尝试将 @types 文件夹中的 index.d.ts 复制到我的测试文件夹中,尝试对其进行导入,尝试将其更改declare constexport const(但随后我需要导入模块并且它都在特定的命名空间中)。尝试做一个declare global,也没有运气。

出于我无法理解的原因,这种行为似乎是故意的。我真的很困惑,有没有办法解决这个问题?还是我运气不好?

0 投票
1 回答
603 浏览

reactjs - 使用 ts-jest 调试 typescript 测试时 .tsx React 组件出错

我正在尝试在 React 应用程序中调试我的打字稿测试,使用ts-jest.

我的项目是用create-react-app. 我可以使用提供的完美运行我的打字稿测试"test": "react-scripts-ts test --env=jsdom"

但是为了调试它们,我尝试在 package.json 中添加一个脚本条目,如下所示: "test:debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --config=jest.config.debug.json"

当我像这样运行时:npm run test:debug我收到预期的消息: Debugger listening on ws://127.0.0.1:9229/bc733a7d-01d8-42eb-a18d-e59fe30a6393 但是当我连接 Chrome DevTools 时,我单击运行,然后,我的许多测试运行并通过,但是当我运行可能是我在 . test.tsx 文件。

该错误指向另一个 .tsx 文件,它是一个 React 组件,而不是一个测试。

这是我的内容jest.config.debug.json

我究竟做错了什么?有任何想法吗?

0 投票
1 回答
1059 浏览

typescript - 将 Typescript 与 Jest 一起使用时如何测试超级调用?

假设我有一个结构如下的课程:

我想测试是否使用提供的参数以及附加的{ foo: 'bar' }调用了 super.get() 。

如何检查 classA.fetch 是否实际上是使用我期望的参数调用的?

我在做完全错误的事情吗?

谢谢你的帮助!

0 投票
2 回答
2207 浏览

jestjs - 无法使用 ts-jest 转换 node_modules 中的文件夹

我正在用打字稿编写测试,并且我在node_modules/@my-modules文件夹中有私有依赖项。我正在使用ts-jest编译器,但 jest 仍然抱怨 node_modules 文件夹中的 esnext 模块。

包版本:

tsconfig.json:

jest.config.js:

运行 jest 时的确切错误:

什么是@my-modules为了开玩笑而转换文件的正确方法?

0 投票
0 回答
951 浏览

typescript - 测试本机组件时,TypeScript 与流程冲突

我有一个简单的 react-native 样板,我正在尝试测试一个用 typescript 编写的简单的 react-native 组件:

SContainer, STitle, SSubtitle&SParastyled-components

我有这个测试:

我还有其他纯 JS/TS 函数(没有 JSX)的笑话测试,测试运行并完美通过。但是当我jest -- -u在 Splash.spec.tsx 上运行时,我得到了这个:

我的 package.json jest 部分如下所示:

所以我看到错误来自流类型的 react-native StyleSheet libnode_modules/react-native/Libraries/StyleSheet/StyleSheet.js

我的 tsconfig.json 看起来像这样:

我在网上搜索任何线索,使用transformIgnorePatternstsconfig 和 tsconfig 的值无济于事。

当我在 ios/android 中运行项目时,它可以编译并正常工作。

这是回购:

https://github.com/ishabo/clate

0 投票
2 回答
3592 浏览

javascript - 使用 Jest 的 todo 功能

Jest 24的发行说明突出显示了我想使用的一个新功能:test.todo. 但是,对于我的生活,我无法使用它。

例如,我想在我的subscriptions.test.ts文件中勾画出测试,所以我创建了以下内容:

然后,TypeScript 编译器立即在我下方显示一条红线todoProperty 'todo' does not exist on type 'It'.

我确定我遗漏了一些明显的东西,但此时我已经碰壁了。有人可以帮忙吗?

0 投票
2 回答
12548 浏览

typescript - 如何强输入笑话模拟

我想强烈输入我的笑话。在某种程度上,我可以让它工作,但是当一个类有私有属性时,我就卡住了。

另一个问题,当我使用模拟(我目前的方式)时,返回类型是原始类型,但是当我必须访问 Jest 添加的任何方法时,我必须对其进行类型转换jest.Mock才能访问方法。有一个更好的方法吗?我尝试过使用jest.Mock, jest.Mocked, jest.MockInstance.

如果有人能指出我正确的方向,那就太好了!

肮脏的解决方法:

0 投票
1 回答
285 浏览

reactjs - 用于测试 json 结构上的组件映射的笑话问题

我创建了一个下一个函数组件,它基本上使用创建标签值负载中的值映射到一个 json 文件,如下所示。

我的问题是在为这个组件创建单元测试时出现的。这是一个试图创建快照的基本测试。

这在运行此测试时会导致问题

我正在使用 24.1.0 的 Jest 最新版本,24.0.0 的 ts-jest,其 jest 配置为:

有关如何解决此问题的任何建议都会很好,或者如果需要任何其他信息来帮助,请告诉我。谢谢