问题标签 [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 投票
0 回答
497 浏览

typescript - 运行一个将 typescript 测试与 jest 合并的声明

我有一个有趣的项目,我想在其中执行这个测试文件(在项目/_ _ 测试 _ _/example.spec.ts 中):

源代码(在 project/src/source.ts 中):

我开玩笑的配置:

tsConfig.test.json 文件:

测试的执行因语法错误而失败:

任何人都知道我如何能够开玩笑来执行这个测试?谢谢 !

0 投票
2 回答
5088 浏览

angular - 我无法正确配置 jest 以导入模块 (setupFilesAfterEnv)

在测试角度项目时,我使用@angular-builders/jest它是为了用玩笑来替换业力。有 2 个库我喜欢为玩笑获得额外的匹配器:jest-extended@testing-library/jest-dom.

我找不到自动导入匹配器的方法,因此我不必在每个规范文件中导入它们。

重现问题的最小示例jest-extended

首先,创建一个 Angular 项目并安装 jest 依赖项

然后编辑angular.json以替换生成器

到目前为止,我可以使用 jest 命令运行并通过测试

现在我使用一个开玩笑扩展的匹配器添加一个测试。在app.component.spec.ts

尝试#1

创造jest.config.js

不起作用,我得到错误TS2339: Property 'toBeArrayOfSize' does not exist on type 'ArrayLikeMatchers<number>'

尝试#2

使用中间设置文件;创造jest.config.js

my-jest-setup.ts

作品!测试通过...但是只要我更改了规范文件中的某些内容

并再次运行测试,我得到与尝试 #1 相同的错误。我怀疑缓存问题

解决方法

在每次运行之前使用尝试 #2 并清除玩笑缓存

我不喜欢这种解决方案,因为缓存旨在加快速度,并且当有许多规范文件时,每次清除缓存都会产生敏感影响。此外,我认为在手表模式下使用 jest 时不可能清除缓存

抱歉,有点长,谢谢你读到最后

0 投票
3 回答
4051 浏览

react-native - React Native Jest 错误:无法从“react-native-implementation.js”中找到模块“warnOnce”

运行时出现此错误npm test。我查看了许多建议对 , 进行编辑的帖子、解决方案等,package.jsonbabel.config.jsjest.config.js仍然收到此错误。我认为这可能是 React Native 的版本问题,但我使用的是最新版本 0.60.4,并且在一些问题中提到这在 master 中已解决。也许我忽略了一些东西,但我对它可能是什么还不够。

以下是因此失败的测试:

想法?

包.json

jest.config.js

babel.config.js

0 投票
1 回答
2934 浏览

javascript - Typescript - 我无法使用 jest、@types/jest 和 ts-jest 编译项目

我正在尝试用玩笑来模拟我的axios请求。这是我的测试:

这是我的package.json

最后,这是我的tsconfig.json

问题是:当我尝试编译我的项目时,终端说:

我发现的大部分讨论都说升级typescript版本并jasmine从项目中删除。如您所见,jasmine我的项目中没有,而且我的typescript版本是最新版本。为什么会这样?

0 投票
1 回答
301 浏览

javascript - 开玩笑模拟在模块导出之前实例化的依赖项

我正在尝试测试一个导出一个默认函数的文件,并且还在导出函数之前实例化一个对象,每次调用导出函数时该对象都需要保持为同一个实例。

这是该模块的简化版本:

我想测试发送到 client.get() 函数的 url 是否正确,所以这里是测试:

测试运行时,来自的响应myModule({})始终未定义。

但是,如果我将该const client = new HttpClient()行向下移动到导出函数的内部,它会正常工作并myModule({})返回test.

我只需要定义一次 HttpClient ,并且每次调用函数时都使用相同的实例,因此必须在函数外部对其进行实例化。如何模拟该对象创建以返回我的自定义值?谢谢。

0 投票
1 回答
707 浏览

typescript - Jest TypeScript 测试在 Jenkins 中失败

我们有一个 React / TypeScript 项目,并使用 Jest + ts-jest 作为我们的测试运行器。在本地一切正常,但在我们的 Jenkins CI 中运行时失败。

这是 Jenkins 控制台的一个片段:

奇怪的是,Jest 说“未找到测试”但也说“testMatch:... 38 个匹配”

0 投票
1 回答
4510 浏览

typescript - 开玩笑的模拟节点模块不适用于打字稿

我尝试模拟uuid/v4来自 npm 的模块。为此,我按照 jest 的建议创建了一个模拟文件夹:https ://jestjs.io/docs/en/manual-mocks

我的文件夹结构:

模拟节点模块文件v4.ts

当我尝试在我的测试文件中导入 uuid/v4 时,jest 通常应该导入模拟并且我应该能够使用它。

这是我的测试文件:

不幸的是,模拟导入似乎不起作用,因为我无法添加mockReturnValuejest 提供的内容,并且出现以下打字稿错误: property 'mockReturnValue' does not exist on type v4. ts(2339)

你知道我该如何解决吗?提前谢谢。

0 投票
5 回答
10090 浏览

typescript - 使用 jest 模拟 AWS.DynamoDB.DocumentClient 的构造函数

我有一个看起来像这样的函数:

我想测试功能连接。我已经像这样模拟了 DynamoDB 构造函数:

但是,这意味着DocumentClient构造函数失败。我该如何嘲笑呢?

0 投票
3 回答
4108 浏览

typescript - 无法用打字稿设置笑话

我正在按照这个例子为打字稿项目设置一些基本的单元测试:https ://dev.to/muhajirdev/unit-testing-with-typescript-and-jest-2gln

我有一个main.ts导出isInternalLink功能

和一个main.spec.ts试图测试它的

但我收到以下错误:

这是带有完整示例的公共回购:https ://gitlab.com/opensas/jest-typescript

谁能指出我正确的方向,或提供一个可行的例子?

0 投票
1 回答
1068 浏览

typescript - 按照 Jest Docs,在 mockImplementation() 上出现错误。我究竟做错了什么?

我正在尽我最大的努力跟随文档开玩笑,我也在尽我最大的努力自学。我在关注官方笑话网站上的文档时遇到问题。我在模拟模块部分。它与 axios 有关,但我一直在打字稿中收到错误,即 mockImplementation 不是一个属性(无论模拟是什么)

我试着环顾四周,看看这是否是我的配置问题,但我无法弄清楚。

脚.ts

测试.ts

这是我在 mockImplementatin 上遇到的错误

我所做的就是遵循文档。在我进入分区之前,我没有任何问题。