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

jestjs - 在 CI 中使用打字稿路径开玩笑“找不到模块”

在 Gitlab-CI 环境中,我们的 Jest 测试 2 以Cannot find module.
奇怪的是它可以在我的本地 Win10 机器上运行——即使我在类似的 docker-container ( node 12.12.0) 中运行测试。

这是控制台输出:

我不确定如何正确解释此输出:

  1. permission-group.service.spec.ts: 这是失败的测试
  2. Cannot find module '@cm/utils-server' from 'license.service.ts':
    好的,测试或者它的一些依赖,使用license.service.ts并在license.service.ts文件'@cm/utils-server'中找不到模块。
  3. 错误指示符 ( >at parseLicenseInfo) 是什么意思?
    • 这是用于导入@cm/license-shared- 不是@cm/utils-server如 2 中的错误消息所示
    • @cm/utils-server也是导入的,但第 14 行下面有 2 行:所以这可能只是一个开玩笑的错误吗?
0 投票
2 回答
2636 浏览

node.js - Jest watch 未检测到文件更改

运行npm t -- --watch未检测到对测试文件的更改。如果我运行npm tnpm run test:changed(我的脚本仅运行通过 覆盖更改的文件的测试jest -o)一切正常,但是,不会检测到任何更改并且不会重新运行测试。

知道我做错了什么吗?

对于额外的上下文,我正在使用ts-jest这里是我的一些相关配置文件:

src/tsconfig.json

jest.config.ts

0 投票
5 回答
26434 浏览

node.js - 开玩笑测试通过但得到错误:最后连接 ECONNREFUSED 127.0.0.1:80

我在后端使用带有 TypeScript 的节点,在后端使用 Jest 和 Supertest 作为我的测试框架。

当我尝试测试时,我的结果通过了,但最后我得到了一个错误。结果如下:

这是我的测试代码:

这是我的服务器设置。我在overnightjs后端使用。

我创建了一个 getter 来获取 Express 实例。这来自night.js。

我读了这个问题- 这就是我调用方法的原因startDB

0 投票
1 回答
543 浏览

javascript - 如何在 Jest 中正确模拟类模块?

我正在使用这个amplitude模块,它需要我先实例化一个类,然后使用实例方法。代码如下:

然后我稍后调用await amplitude.track({something: 'here'})并想模拟它,以便不调用外部库并且我可以验证参数。我必须初始化一个类的事实让我对模拟感到失望。

我尝试使用__mocks__文件夹,但 Typescript 建议使用已转为一个的自动模拟。对于我的生活,我无法弄清楚如何模拟这种情况。有任何想法吗?

0 投票
1 回答
1110 浏览

jasmine - 如何修复类型'AsymmetricMatcher' 不能分配给类型 '() => void'。在茉莉花/开玩笑

我有一个对象配置,我在其中向函数发送函数回调。

我遇到的问题是,在更新到最新的 jest/jasmine 之后,我收到了这个错误myCallback: jasmine.anything()

如何修复类型“AsymmetricMatcher”不可分配给类型“() => void”。在茉莉花/开玩笑

如果我在测试继续工作时忽略该行,@ts-ignore但我想知道为什么 linter 会这样说以及如何解决它,因为我真的不明白它。

0 投票
1 回答
790 浏览

typescript - 是否可以使用 ts-jest / jest 监视通用函数并在 Typescript 环境中模拟返回值?

我是新用户,试图通过 ts-jest 在 Typescript 环境中学习 jest。我希望“spyOn”的功能之一使用泛型。是否可以监视通用函数并模拟类型化的返回值?

例如:

我尝试过:

在这种情况下allSpy具有以下类型信息:

如果我尝试模拟返回值,则会收到类型编译错误:

0 投票
0 回答
306 浏览

typescript - Jest 测试是否涵盖了 typescript 类的私有方法

我正在测试一个打字稿控制器公共方法,它调用控制器的私有方法,但是当我看到覆盖范围时,我发现私有方法没有被覆盖。下面是示例代码。我正在调用内部调用私有方法 transformUserActivity 来转换响应数据的控制器的 readActivity。当我看到代码覆盖率时,它说 transformUserActivity 没有被覆盖。

测试代码 audtiController.test.ts

控制器代码 auditController.ts

0 投票
0 回答
178 浏览

jestjs - 新的玩笑用户对在打字稿中模拟节点模块的正确方法感到困惑

嗨,我是在 Typescript 环境中使用 jest 的新 jest 用户。

通过阅读jest 指南,如果我想模拟一个节点模块,我需要在文件夹中创建一个带有模块名称的__mocks__文件,以便 jest 导入模拟的模块。例如,如果我想模拟typesafe-actions库,那么我将拥有:

src -> __mocks__-> typesafe-actions.ts

完成此操作后,我发现需要导入实际模块实现的测试中断,并出现函数未定义错误。jest.unmock('typesafe-actions')我通过在需要实际模块实现的测试文件的标题中发出一条语句来解决此问题。这是因为测试文件:

  • 直接导入模块或
  • 通过另一个模块间接导入。

我这样做是正确的,还是有更好的方法?

在使用模拟的测试文件中,我收到一个createAction不是函数的错误......我如何正确模拟库中的一个函数并使剩余的模块函数保持不变?

0 投票
0 回答
498 浏览

travis-ci - Travis CI 上的 grpc TCP 读取失败错误,哪里出错了?

我编写了一些涉及 grpc 调用和 100% 通过本地计算机的测试,但是在 Travis CI 构建中,它 100% 失败声称:TCP Read Failed,任何人都可以阐明哪里出了问题?

详细日志在这里:

https://travis-ci.com/Jeff-Tian/grpc-man/builds/140791394?utm_medium=notification&utm_source=email

提前致谢!

我的调查:

首先,我怀疑它是由我正在监听的主机或端口引起的,所以我将grpc端点从更改0.0.0.0:8080127.0.0.1:8080,但结果保持不变。

0 投票
0 回答
94 浏览

reactjs - 开玩笑地点击它时如何验证已调用的函数?

这是我的代码看起来像

在这里我需要验证onPress里面的函数 我不知道该怎么做,但我试过了

测试.tsx