问题标签 [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 回答
701 浏览

typescript - 如何在使用 jest 运行测试时修复警告:无法安装组件:未定义模板或渲染函数

我已经看到很多关于相同错误的帖子,但我只是在使用 Jest 运行测试时才得到它:

导航栏.vue

导航栏.ts

Navbar.spec.ts 示例测试

测试本身通过。我假设我缺少/设置了错误的一些配置,但不确定到底是什么。我也在使用打字稿。

笑话配置:

我希望测试仍然可以通过而不会出现控制台错误。

0 投票
1 回答
297 浏览

jquery - 使用 ES 导入时如何在 ts-jest 中使用 jQuery 编写测试?

我正在尝试使用 TypeScript、Jest 和 jQuery 编写单元测试。我已经走了很远,但是当我运行测试时,我得到“jQuery 需要一个带有文档的窗口”

显然,问题在于import * as $ from "jquery"见这个问题)也会初始化 jQuery,但当时没有窗口。我需要的是 jQuery 模块的“懒惰”版本,除了符号本身之外,$(document).ready(...)这通常是一种。$

背景:我将 jQuery 安装为npm install @types/jquery. 我jsdom用来创建一个假窗口。我正在使用ts-jest将 TS 文件转换为 JavaScript for jest. npx jest --watch使用或运行测试npm t

我想避免global.$Jest setupFile中使用,因为许多测试不需要开销。

0 投票
1 回答
411 浏览

jestjs - TypeError:无法读取未定义的属性“产品”,来自模拟函数

我正在使用 Jest 和 Enzyme 编写组件测试。

测试的组件使用了一个名为 Service 的类的导入静态方法,该类直接分派到商店。

组件本身调用了 中的两个Service类元素componentDidMount,但也调用了组件的其他部分:

我试过用一个简单的模拟来模拟四个类方法,后来甚至尝试测试toBe组件上最简单的元素:

但是,在运行测试时,我收到一条错误消息:

TypeError:无法读取未定义的属性“产品”

错误跟踪如下:

因此,如您所见,路径直接回到减速器。这是我希望避免的,因此为函数添加了模拟。

我不确定这段代码可能有什么问题,互联网正在慢慢停止对可能出现的问题有任何想法。

在这里的任何帮助将不胜感激。

另外,如果提供的资源不够,请告诉我。

JEST 版本是21.2.1. 不幸的是,由于该软件包与我正在使用的另一个软件包紧密相连,我无法更改它(版本)。

0 投票
1 回答
1381 浏览

react-native - react-native, jest, ts-jest: ReferenceError: React is not defined

几天来,我一直在努力使用 expo + typescript + jest + ts-jest 运行简单的 react-native 测试。我已经在这里问了一个相关问题 是我的项目的设置:

  1. tsconfig.json
  1. babel.config.json
  1. jest.config.js (请参阅react-native + ts-jest 的官方 github 设置

我收到这个错误

ReferenceError: React is not defined

因为我在我的文件中导入这样的反应: import React from 'react'

如果我像它一样导入import * as React from 'react'

任何帮助将不胜感激,因为我已经在这个项目中度过了几天。

0 投票
1 回答
1493 浏览

typescript - 如何模拟尚不存在的节点模块?

没有这样的module.ts

sum.ts

样本.test.ts

错误

是否可以模拟尚不存在的节点模块?no-such-module我在 ts 文件中声明了a 。我正在尝试从模块中模拟一个函数。

0 投票
0 回答
3257 浏览

typescript - Ts-Jest Typescript 诊断:错误 TS2307:找不到模块

我在一个混合了 js 和 ts 文件的 vue 项目中使用 ts-jest。该项目使用该@字符将导入相对映射到目录src/renderer/。TS 为找不到模块发出警告。我可以忽略警告并通过执行以下操作运行测试:

但我希望导入按预期运行。

jest.config.js

考验在于,test/unit/regexes.spec.ts 进口在于src/renderer/resources/regexes.ts

我得到的具体错误是:

0 投票
1 回答
13224 浏览

javascript - 如何检查是否在嵌套的笑话模拟函数中调用了方法

我有一个像下面这样的模拟服务

在我的测试中,我想expect是否initializeApp已被调用。我该如何检查?

更新:真实场景

我想在下面检查

0 投票
3 回答
4924 浏览

reactjs - 如何使用 jest 和 typescript 测试一个基本的反应功能组件

这有点令人震惊,但我长期以来一直试图找到一个简单的例子来说明如何使用 jest 和 typescript 测试一个愚蠢的反应组件,但我无法成功。我看过: https ://basarat.gitbooks.io/typescript/content/docs/testing/jest.html 如何将 react-test-renderer/shallow 与 typescript 一起使用? 如何在 Jest 单元测试中查看渲染的 React 组件是什么样的?

没有任何效果。大多数时候我得到

我是新来的反应和开玩笑。我试过 react-test-renderer 和酵素。在这个阶段我也不介意,最不可知的可能会很棒。

我所拥有的:这是我的 package.json

如您所见,我希望使用 typescript 进行强类型测试,这就是我需要酶类型的原因。

我有一个愚蠢的反应组件 App.tsx

我想有一个测试文件App.test.ts ,我只是测试给定<App name="whatever" />渲染,DOM应该有<h1>Hello, whatever</h1>

我的尝试是:

它因上述错误而失败,而且 VS Code 在浅参数上显示错误,就好像它不理解 JSX。

如果需要我jest.config.js的是:

没有比这更简单的了,但我失败了!

PS:我发现的绝大多数文章都没有使用打字稿和类型定义,但这是我想要的。

0 投票
1 回答
1161 浏览

typescript - Jest mock 总是给出 undefined (typescript + ts-jest)

我似乎无法使模拟正常工作。

一点上下文:

  • storage.ts包含一个方法getOsTmpDir

  • moduleA.ts正在消耗storage.ts

  • moduleA.spec.ts中:

打印(在console.log(getOsTmpDir());给出未定义的

我尝试过的其他事情:

  • getOsTmpDir: jest.fn(() => '/tmp')
  • getOsTmpDir: jest.fn().mockReturnValue('/tmp')

但似乎没有任何帮助。我错过了什么?


编辑:我发现了问题。我没有注意到在每次测试之前所有模拟都在重置,并且由于我已经在文件顶部定义了模拟(一次),所以模拟在运行任何测试之前就被终止了

beforeEach(async () => { jest.resetAllMocks(); <---- .... }

0 投票
0 回答
15 浏览

typescript - 开玩笑地测试异常

我有一个新Array.prototype方法

如何编写测试用例来验证是否抛出错误?

我也试过了toThrowError,但没有运气。