问题标签 [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.
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
类(我认为),但我就是无法解决。
有些人可以提供任何线索,说明我可能需要做些什么来克服这种类型的错误?
谢谢
typescript - ts-jest - 运行 jest 时从类型 (.d.ts) 中声明 const 值未定义
我对使用 Typescript 和 Jest 比较陌生,而且我一直遇到一个问题,我在@types/screeps
. 这些看起来像这样:
每当我在测试中使用这些常量时,我都会得到一个ReferenceError: OK is not defined
inside Jest。如果我确实在测试中声明了该值,则错误的位置将移动到正在测试的文件中。
我做了一些谷歌搜索,我在 ts-jest 存储库中发现了这个特殊的错误:https ://github.com/kulshekhar/ts-jest/issues/112
但是,我很难跟踪讨论,因为我几乎没有使用过 Typescript,而且我真的不明白如何自己解决这个问题。我想要的是能够在环境范围内声明这些值并在我的测试中使用它们。每当使用 rollup 编译代码时,该类型就会被拾取(因为它是运行时 Screeps 中全局可用的值,并且编译后的输出很好)。我不介意调整 tsconfig.json 或复制文件/一起破解解决方案。
我尝试将 @types 文件夹中的 index.d.ts 复制到我的测试文件夹中,尝试对其进行导入,尝试将其更改declare const
为export const
(但随后我需要导入模块并且它都在特定的命名空间中)。尝试做一个declare global
,也没有运气。
出于我无法理解的原因,这种行为似乎是故意的。我真的很困惑,有没有办法解决这个问题?还是我运气不好?
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
我究竟做错了什么?有任何想法吗?
typescript - 将 Typescript 与 Jest 一起使用时如何测试超级调用?
假设我有一个结构如下的课程:
我想测试是否使用提供的参数以及附加的{ foo: 'bar' }调用了 super.get() 。
如何检查 classA.fetch 是否实际上是使用我期望的参数调用的?
我在做完全错误的事情吗?
谢谢你的帮助!
jestjs - 无法使用 ts-jest 转换 node_modules 中的文件夹
我正在用打字稿编写测试,并且我在node_modules/@my-modules
文件夹中有私有依赖项。我正在使用ts-jest
编译器,但 jest 仍然抱怨 node_modules 文件夹中的 esnext 模块。
包版本:
tsconfig.json:
jest.config.js:
运行 jest 时的确切错误:
什么是@my-modules
为了开玩笑而转换文件的正确方法?
typescript - 测试本机组件时,TypeScript 与流程冲突
我有一个简单的 react-native 样板,我正在尝试测试一个用 typescript 编写的简单的 react-native 组件:
SContainer
, STitle
, SSubtitle
&SPara
是styled-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 看起来像这样:
我在网上搜索任何线索,使用transformIgnorePatterns
tsconfig 和 tsconfig 的值无济于事。
当我在 ios/android 中运行项目时,它可以编译并正常工作。
这是回购:
javascript - 使用 Jest 的 todo 功能
Jest 24的发行说明突出显示了我想使用的一个新功能:test.todo
. 但是,对于我的生活,我无法使用它。
例如,我想在我的subscriptions.test.ts
文件中勾画出测试,所以我创建了以下内容:
然后,TypeScript 编译器立即在我下方显示一条红线todo
,Property 'todo' does not exist on type 'It'.
我确定我遗漏了一些明显的东西,但此时我已经碰壁了。有人可以帮忙吗?
typescript - 如何强输入笑话模拟
我想强烈输入我的笑话。在某种程度上,我可以让它工作,但是当一个类有私有属性时,我就卡住了。
另一个问题,当我使用模拟(我目前的方式)时,返回类型是原始类型,但是当我必须访问 Jest 添加的任何方法时,我必须对其进行类型转换jest.Mock
才能访问方法。有一个更好的方法吗?我尝试过使用jest.Mock
, jest.Mocked
, jest.MockInstance
.
如果有人能指出我正确的方向,那就太好了!
肮脏的解决方法:
reactjs - 用于测试 json 结构上的组件映射的笑话问题
我创建了一个下一个函数组件,它基本上使用创建标签值负载中的值映射到一个 json 文件,如下所示。
我的问题是在为这个组件创建单元测试时出现的。这是一个试图创建快照的基本测试。
这在运行此测试时会导致问题
我正在使用 24.1.0 的 Jest 最新版本,24.0.0 的 ts-jest,其 jest 配置为:
有关如何解决此问题的任何建议都会很好,或者如果需要任何其他信息来帮助,请告诉我。谢谢