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

javascript - 如何在 Vue.js Jest 测试中正确模拟新日期,以便快照不会失败?

目标是模拟 javascript Date 对象,以便在我运行测试和评估快照时,快照并不总是失败。

我正在尝试为new Date在 Vue 2.6.8 应用程序(这是一个 Typescript 项目)中利用构造函数的函数编写一个 Jest 测试。

我已经绑定了一个调用maxDate组件的变量。它使用 getter 根据需要计算值。目标是限制日期选择器的可选范围。代码如下所示:

Vue模板:

Vue类方法:

开玩笑测试(匹配快照):

我的问题是:我如何防止我的快照失败,因为每次运行测试时日期都会改变?

例如,当我第一次运行测试并生成快照时,我在快照本身中得到了类似的东西。

首次运行(生成快照):

下次我运行测试时 - 确切地说是一分钟后 - 快照将失败,因为它将期待上一个日期,但现在正在获取不同的数据。

第二次运行(快照失败):

0 投票
1 回答
174 浏览

javascript - jest/enzyme 测试因导入服务而失败

我有一个开玩笑的测试,它正在测试一个浅渲染的组件:

它失败的地方在这里:

在组件处,svc正在被导入并用于componentDidMount

其他任何东西都只是我写的自定义服务:

我不确定如何通过此测试。测试本身有什么我遗漏的吗?

0 投票
0 回答
59 浏览

javascript - Jest/node.js:自定义 console.log 输出?

AWS写了一些 lambda typescript,我正在使用jest.

测试工作正常,但console.log代码行的输出冗长且难以扫描。

运行测试时,在我的控制台中,我看到如下内容:

开玩笑(或其他什么?)为每次调用console.log().

当我宁愿看到类似的东西时:

我也不介意看到一些时间戳。

有没有办法配置/控制这个日志输出?

注意事项:

  • 我不想更改实际代码——我特别不想添加一个完全成熟的日志库或类似的东西。
  • 我仍然希望看到控制台日志记录(即--silent绝对不是我想要的)。
  • 我不是在尝试测试控制台日志记录,我只是想让它更易于阅读。
  • 我试过--verbose=false了——但似乎没有任何区别。
0 投票
1 回答
2010 浏览

unit-testing - 开玩笑的单元测试问题:“找不到模块”

目前 Jest 未能通过测试,因为它无法找到组件内调用的模块:

案子

NuxtJs中,这些@@标志是指目录,因为最终我们希望将图像存储在位于项目根目录中的 public 文件夹或 storage 文件夹中。

运行测试时,jest会检查src文件夹,然后尝试挂载从根目录存储的图像,但找不到它们。

我尝试了许多不同的方法来解决这个问题,但似乎无法找到解决方案。这是我已经尝试过的候选清单:

  • 更改regex以检查图像文件并使用moduleNameMapperJest 配置文件中的选项将其引导到正确的文件夹。
  • 我在 Stack 上读到了一些关于使用通过 javascript 导出图像文件的“模拟”文件夹,但这没有用。
  • 使用modulePathsJest 配置文件中的选项。
  • tsconfig.js资产文件夹中创建别名并在moduleNameMapper
  • 在 VueJS 组件和测试文件中尝试了一种不同的方法来加载资产,这破坏了编译过程(所以我恢复了它)。

当前的 Jest 配置文件

当前文件夹结构(仅用于测试的文件夹)

有什么建议么?

我修jest.config吗?

语法有问题吗?

我必须修复tsconfig吗?

0 投票
2 回答
11048 浏览

node.js - 开玩笑通过测试但 --covering 选项不拾取文件

问题描述:
我为一个打字稿类写了两个测试。这两个测试通过了,所以 jest 成功地检索了测试文件。然后我使用 --coverage 选项,但似乎 jest 没有在这里选择覆盖的文件。
这是我得到的输出:

我曾尝试使用 collectCoverageFrom 选项,但没有任何成功。我已经用在 github 上找到的一些简单示例进行了测试,这些示例可以正常工作,因此问题不在于我的环境。我猜我以某种方式错过了我的配置中的某些内容,但是我花了很多时间在这上面,我有点沮丧,所以也许一些新的外观会有所帮助..

项目架构:

Jest.config.js :

包.json

jester.nodemon.json

0 投票
2 回答
1085 浏览

jestjs - 如何使用 NestJS + Nest Crud 创建服务测试?

有谁知道使用Crud 库在 NestJS 上测试服务的正确方法是什么?

这是我的服务测试类:

这是我的服务类:

当测试运行时,这是发生的错误:

提前致谢!

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Sed 坐在 amet nulla libero。塞德劳雷特。

0 投票
1 回答
3371 浏览

protractor - 角度测试 - 将 Jest 与量角器一起使用

我是 Angular 测试的新手,我想为我的应用程序执行 2 种测试:

  1. 单元测试 - 我选择使用Jest,因为我可以在不打开浏览器的情况下运行我的测试,并且它还支持使用--testNamePatern对特定情况进行测试。
  2. 端到端测试 - 我想试用Protractor,因为它可以在 Angular 中使用,并且还有一个庞大的 Angular 社区可供使用。

我的问题是,我可以在我的应用程序中同时使用 Jest 和 Protractor 吗?如果是,我是否需要配置任何东西才能在我的应用程序中同时使用它们。

0 投票
0 回答
363 浏览

protractor - 如何在 Angular 8 中为 Protractor 配置 Jest 规范报告器?

对于 Angular 中的端到端测试,我想尝试一下 Protractor with Jest for Angular 8。在配置文件protractor.conf.js中,默认定义了 Jasmine 的规范报告器:

我的问题是,我怎样才能像这样进行类似的配置,但对于 Jest?

0 投票
1 回答
861 浏览

typescript - Typescript React 本机项目中 DrawerNavigator 的笑话测试失败

我是 React Native 和 Typescript 的新手。我一直在用 Stack Navigation 和 Drawer Navigation 实现一个小项目。该项目一直运行良好,但现在我必须进行一些单元测试。我从一个非常简单的开始,但失败了:/

这是应用程序导航的代码:

导航器.tsx

这是测试:

应用测试.tsx

使用“纱线测试”执行测试时,我得到以下信息:

src/screens/Navigator.tsx:50:38 - error TS7031: Binding element 'navigation' implicitly has an 'any' type

所以我用“导航:NavigationScreenProp”更改了“导航”:

并且测试通过了!...但是现在当我尝试使用“this.props.navigation.navigate('Map')”进入 DrawerNavigator 的屏幕之一时,例如 MapScreen,我得到了错误:

我看到问题出在这一行:

但我不知道如何解决它,也不明白为什么它只适用于 '({ navigation })'

有任何想法吗?

0 投票
2 回答
707 浏览

javascript - ts-jest:将“@”字符映射到 /src 文件夹

我有一个带有打字稿的节点项目,并且在我的 tsconfig.json 文件中配置了以下路径:

我的配置文件位于 /project 文件夹,我的源位于 /project/src

它工作正常,它正确地将 @xxx/yyy 映射到 src/xxx/yyy 和 @project/package.json 到 /project/package.json

我正在尝试使用 ts-jest 实现相同的目标,我尝试在我的 jest.config.js 文件中使用以下 moduleNameMapper:

但我收到以下错误:

另一方面,如果我像这样映射 /src 中的每个文件夹:

它工作正常,但我必须用我添加的每个新根文件夹更新它。

有没有标准的、推荐的方法来实现这样的事情?我希望有一个特殊字符(在本例中为 @)指向我的 /src/ 文件夹。

还尝试将 '@' 替换为 '$' 但也有其他错误...