---
url: /docs/guide/usage/linter/rules/jest/valid-expect.md
---

### 作用

检查 `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();
await expect(Promise.resolve("Hi!")).resolves.toBe("Hi!");
```

## 配置

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

### alwaysAwait

type: `boolean`

default: `false`

当为 `true` 时，异步断言在所有上下文中都必须 `await`（不只是返回语句中）。

### asyncMatchers

type: `string[]`

default: `["toResolve", "toReject"]`

被视为异步、因此需要等待的 matcher 列表（例如 `toResolve`、`toReject`）。

### maxArgs

type: `integer`

default: `1`

`expect` 最多应传入的参数数量。

### minArgs

type: `integer`

default: `1`

`expect` 至少应传入的参数数量。

## 如何使用

## 版本

此规则于 v0.0.14 中添加。

## 参考资料
