小编Pet*_*nis的帖子

开玩笑测试 .toBeInstanceOf(Error) 失败

我无法检查 Promise 是否在 Jest 测试中因错误而拒绝。

(Jest 20 版本后:)

  test("Rejects on error", () => {
    expect.assertions(1);
    return expect(promiseHttpsGet(null)).rejects.toBeInstanceOf(Error);
  });
Run Code Online (Sandbox Code Playgroud)

(Jest 20 之前的版本)

  test("Rejects on error", () => {
    expect.assertions(1);
    return promiseHttpsGet(null).catch((err) => {
      expect(err).toBeInstanceOf(Error);
    });
  });
Run Code Online (Sandbox Code Playgroud)

我已经尝试了两个版本,但 Jest 测试失败:

Expected value to be an instance of:
  "Error"
Received:
  [Error: connect ECONNREFUSED 127.0.0.1:443]
Constructor:
  "Error"
Run Code Online (Sandbox Code Playgroud)

承诺返回函数是:

function promiseHttpsGet(url) {
  return new Promise((resolve, reject) => {
    https
      .get(url, (response) => {
        let responseBody = "";
        if (response.statusCode !== 200) {
          reject(response.statusCode);
        }
        response.setEncoding …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jestjs

10
推荐指数
1
解决办法
7712
查看次数

使用 jest.run() 或 jest.runCLI() 运行所有测试或以编程方式运行 jest 的方法

如何以编程方式使用jest.run()jest.runCLI()运行所有测试?我应该用什么作为论证?

我试图找到有关它们的文档但失败了。

如果上述功能不起作用,如果我想以编程方式运行 jest 应该调用什么?

jestjs

9
推荐指数
2
解决办法
6699
查看次数

编译时未定义的 TypeScript 枚举

我有一个定义在的枚举types.ts

export enum Handedness {
  Left,
  Right,
  Both,
}

export type State = {
  count: number
  handedness: Handedness
}
Run Code Online (Sandbox Code Playgroud)

我有一个正在初始化的对象state.ts

import { State, Handedness } from './types'

export const initial: State = {
  count: 0,
  handedness: Handedness.Both
}
Run Code Online (Sandbox Code Playgroud)

当我jest为这个项目运行测试(通过)时,state.ts生成一个错误TypeError: Cannot read property 'Both' of undefined,告诉我它Handedness在被引用时没有定义。但是我从它的模块中导出它并在我使用它之前导入它......所以它应该被定义。

我发现其他类似的问题询问未定义的枚举,但他们似乎都在询问运行时。据我所知,这是一个编译时问题。

我不知道我会在这里做错什么。我在其他地方导入其他类型没有问题。但是这个枚举根本不想工作。这里发生了什么,我该如何解决?

typescript jestjs

6
推荐指数
3
解决办法
2889
查看次数

标签 统计

jestjs ×3

javascript ×1

typescript ×1

unit-testing ×1