---
url: /docs/guide/usage/linter/rules/vitest/prefer-called-once.md
---

### 它的作用

将 `toBeCalledTimes(1)` 和 `toHaveBeenCalledTimes(1)` 分别替换为
`toBeCalledOnce()` 和 `toHaveBeenCalledOnce()`。

### 为什么这不好？

`*Times` 匹配器需要读取参数，才能知道一个 spy 预期会被调用多少次。
大多数情况下，你期望一个方法只被调用一次。

### 示例

以下是此规则的**错误**代码示例：

```js
test("foo", () => {
  const mock = vi.fn();
  mock("foo");
  expect(mock).toBeCalledTimes(1);
  expect(mock).toHaveBeenCalledTimes(1);
});
```

以下是此规则的**正确**代码示例：

```js
test("foo", () => {
  const mock = vi.fn();
  mock("foo");
  expect(mock).toBeCalledOnce();
  expect(mock).toHaveBeenCalledOnce();
});
```

## 如何使用

## 版本

此规则在 v1.39.0 中添加。

## 参考资料
