Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions guide/browser/context.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ export const page: {
*/
elementLocator(element: Element): Locator
/**
* iframe 定位器。这是一个进入 iframe 主体的文档定位器
* iframe 定位器。这是一个进入 iframe body 的文档定位器
* 其工作原理与 `page` 对象类似。
* **Warning:** 目前,只有 `playwright` 提供程序支持该功能。
* **Warning:** 目前,仅有 `playwright` 提供程序支持该功能。
*/
frameLocator(iframeElement: Locator): FrameLocator

Expand Down
24 changes: 12 additions & 12 deletions guide/browser/interactivity-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@ test('clicks on an element', async () => {
const logo = page.getByRole('img', { name: /logo/ })

await userEvent.click(logo)
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await logo.click()
})
```

References:
相关链接:

- [Playwright `locator.click` API](https://playwright.dev/docs/api/class-locator#locator-click)
- [WebdriverIO `element.click` API](https://webdriver.io/docs/api/element/click/)
Expand All @@ -89,12 +89,12 @@ test('triggers a double click on an element', async () => {
const logo = page.getByRole('img', { name: /logo/ })

await userEvent.dblClick(logo)
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await logo.dblClick()
})
```

References:
相关链接:

- [Playwright `locator.dblclick` API](https://playwright.dev/docs/api/class-locator#locator-dblclick)
- [WebdriverIO `element.doubleClick` API](https://webdriver.io/docs/api/element/doubleClick/)
Expand Down Expand Up @@ -126,7 +126,7 @@ test('triggers a triple click on an element', async () => {
})

await userEvent.tripleClick(logo)
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await logo.tripleClick()

expect(tripleClickFired).toBe(true)
Expand Down Expand Up @@ -160,7 +160,7 @@ test('update input', async () => {
await userEvent.fill(input, '{{a[[') // input.value == {{a[[
await userEvent.fill(input, '{Shift}') // input.value == {Shift}

// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await input.fill('foo') // input.value == foo
})
```
Expand Down Expand Up @@ -299,7 +299,7 @@ test('clears input', async () => {
expect(input).toHaveValue('foo')

await userEvent.clear(input)
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await input.clear()

expect(input).toHaveValue('')
Expand Down Expand Up @@ -343,7 +343,7 @@ test('clears input', async () => {
const select = page.getByRole('select')

await userEvent.selectOptions(select, 'Option 1')
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await select.selectOptions('Option 1')

expect(select).toHaveValue('option-1')
Expand Down Expand Up @@ -393,7 +393,7 @@ test('hovers logo element', async () => {
const logo = page.getByRole('img', { name: /logo/ })

await userEvent.hover(logo)
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await logo.hover()
})
```
Expand Down Expand Up @@ -426,7 +426,7 @@ test('unhover logo element', async () => {
const logo = page.getByRole('img', { name: /logo/ })

await userEvent.unhover(logo)
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await logo.unhover()
})
```
Expand Down Expand Up @@ -458,7 +458,7 @@ test('can upload a file', async () => {
const file = new File(['file'], 'file.png', { type: 'image/png' })

await userEvent.upload(input, file)
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await input.upload(file)

// 也可以使用相对于项目根目录的文件路径
Expand Down Expand Up @@ -496,7 +496,7 @@ test('drag and drop works', async () => {
const target = page.getByTestId('logo-target')

await userEvent.dragAndDrop(source, target)
// 或直接从定位器上访问
// 或者你可以直接从定位器上访问
await source.dropTo(target)

await expect.element(target).toHaveTextContent('Logo is processed')
Expand Down
2 changes: 1 addition & 1 deletion guide/browser/preview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
`preview` 提供程序的主要功能是在真实浏览器环境中显示测试。不过,它不支持高级浏览器自动化功能,如多个浏览器实例或无头模式。对于更复杂的场景,请考虑使用 [Playwright](/guide/browser/playwright) 或 [WebdriverIO](/guide/browser/webdriverio)。
:::

要查看测试在真实浏览器中的运行情况,需要安装 [`@vitest/browser-preview`](https://www.npmjs.com/package/@vitest/browser-preview) npm 软件包,并在配置的 `test.browser.provider` 属性中指定其 `preview` 导出:
要让你的测试运行在真实浏览器中,需要安装 [`@vitest/browser-preview`](https://www.npmjs.com/package/@vitest/browser-preview) npm 软件包,并在配置的 `test.browser.provider` 属性中指定其 `preview` 导出:

```ts [vitest.config.js]
import { preview } from '@vitest/browser-preview'
Expand Down
2 changes: 1 addition & 1 deletion guide/in-source.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Vitest 还提供了一种方式,可以运行与你的代码实现放在一起
首先,在 `if (import.meta.vitest)` 代码块内写一些测试代码并放在文件的末尾,例如:

```ts [src/index.ts]
// 执行
// 代码实现
export function add(...args: number[]) {
return args.reduce((a, b) => a + b, 0)
}
Expand Down
14 changes: 7 additions & 7 deletions guide/migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ expect(AutoMockedClass.prototype.method).toHaveBeenCalledTimes(4)
为了提升用户体验,当 [`--standalone`](/guide/cli#standalone) 与文件名过滤器一起使用时,Vitest 现在会直接开始运行匹配到的文件。

```sh
# 在 Vitest v3 及以下版本中,该命令将忽略 "math.test.ts "文件名过滤器。
# 在 Vitest v3 及以下版本中,该命令将忽略 "math.test.ts" 文件名过滤器。
# 在 Vitest v4 中,math.test.ts 将自动运行。
$ vitest --standalone math.test.ts
```
Expand All @@ -158,7 +158,7 @@ $ pnpm run test:dev math.test.ts
```
:::

### 更换 `vite-node` [Module Runner](https://vite.dev/guide/api-environment-runtimes.html#modulerunner) {#replacing-vite-node-with-module-runner}
### `vite-node` 替换为 [Module Runner](https://vite.dev/guide/api-environment-runtimes.html#modulerunner) {#replacing-vite-node-with-module-runner}

Module Runner 已取代 `vite-node`,直接内嵌于 Vite, Vitest 亦移除 SSR 封装,直接调用。主要变更如下:

Expand Down Expand Up @@ -265,11 +265,11 @@ const { getElementError } = utils // [!code ++]
在过渡期间,`@vitest/browser/context` 和 `@vitest/browser/utils` 都能在运行时工作,但它们将在未来的版本中移除。
:::

### 记录者更新 {#reporter-updates}
### 报告器更新 {#reporter-updates}

记录者 API `onCollected`,`onSpecsCollected`,`onPathsCollected`,`onTaskUpdate` 和 `onFinished` 被移除。参阅 [`Reporters API`](/advanced/api/reporters) 了解新的替代方案。新的 API 在 Vitest `v3.0.0`中引入。
Reporter API `onCollected`,`onSpecsCollected`,`onPathsCollected`,`onTaskUpdate` 和 `onFinished` 被移除。参阅 [`Reporters API`](/advanced/api/reporters) 了解新的替代方案。新的 API 在 Vitest `v3.0.0` 中引入。

删除了 `basic` 记录者,因为它等于
移除了 `basic` 报告器,因为它等价于

```ts
export default defineConfig({
Expand Down Expand Up @@ -325,7 +325,7 @@ exports[`custom element with shadow root 1`] = `
`
```

### 已废弃的 API {#deprecated-apis-are-removed}
### 移除弃用的 API {#deprecated-apis-are-removed}

Vitest 4.0 移除了以下废弃的配置项:

Expand Down Expand Up @@ -368,7 +368,7 @@ const mock = vi.fn()
const state = mock.mock
mock.mockClear()

expect(state).toBe(mock.mock) // 在 Jest 是失败
expect(state).toBe(mock.mock) // 在 Jest 中失败
```

### 模块 Mock {#module-mocks}
Expand Down
6 changes: 3 additions & 3 deletions guide/testing-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ test('my types work properly', () => {
expectTypeOf(mount).toBeFunction()
expectTypeOf(mount).parameter(0).toExtend<{ name: string }>()

// @ts-expect-error 名称为字符串
// @ts-expect-error name 应是 string 类型
assertType(mount({ name: 42 }))
})
```
Expand Down Expand Up @@ -106,7 +106,7 @@ expectTypeOf(one).toEqualTypeOf<typeof two>()
const answer = 42

assertType<number>(answer)
// @ts-expect-error 答案不是字符串
// @ts-expect-error answer 不是 string 类型
assertType<string>(answer)
```

Expand All @@ -116,7 +116,7 @@ assertType<string>(answer)
这将通过,因为它预计会出现错误,但 “answer” 这个词有错别字,所以这是一个误报错误:

```ts
// @ts-expect-error 答案不是字符串
// @ts-expect-error answer 不是 string 类型
assertType<string>(answr)
```

Expand Down