Skip to content
← Back to rules

jest/valid-expect 正确性

An auto-fix is available for this rule.

它做了什么

检查 expect() 是否被正确调用。

为什么这是个问题?

expect() 是一个用于在测试中断言值的函数。 它应该以单个参数调用,该参数是要测试的值。 如果未传递参数,或传递了超过一个参数调用 expect(),其行为将不符合预期。

示例

此规则的错误代码示例:

javascript
expect();
expect("something");
expect(true).toBeDefined;
expect(Promise.resolve("Hi!")).resolves.toBe("Hi!");

此规则的正确代码示例:

javascript
expect("something").toEqual("something");
expect(true).toBeDefined();
expect(Promise.resolve("Hi!")).resolves.toBe("Hi!");

该规则与 eslint-plugin-vitest 兼容, 要使用它,请将以下配置添加到你的 .oxlintrc.json 文件中:

json
{
  "rules": {
    "vitest/valid-expect": "error"
  }
}

配置

此规则接受一个包含以下属性的配置对象:

alwaysAwait

type: boolean

默认值: false

当为 true 时,异步断言必须在所有上下文中都被等待(不仅限于返回语句)。

asyncMatchers

type: string[]

默认值: ["toResolve", "toReject"]

被视为异步且因此需要等待的匹配器列表(例如 toResolvetoReject)。

maxArgs

type: integer

默认值: 1

expect 调用时允许的最大参数数量。

minArgs

type: integer

默认值: 1

expect 调用时要求的最小参数数量。

如何使用

通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "plugins": ["jest"],
  "rules": {
    "jest/valid-expect": "error"
  }
}
bash
oxlint --deny jest/valid-expect --jest-plugin

参考资料