From 5f14dbe065bf3c3e99e1a88f7cc8d4abb605a422 Mon Sep 17 00:00:00 2001 From: noise Date: Fri, 28 Nov 2025 00:14:09 +0800 Subject: [PATCH] fix: ambiguity of recent submissions --- guide/browser/context.md | 4 ++-- guide/browser/interactivity-api.md | 24 ++++++++++++------------ guide/browser/preview.md | 2 +- guide/in-source.md | 2 +- guide/migration.md | 14 +++++++------- guide/testing-types.md | 6 +++--- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/guide/browser/context.md b/guide/browser/context.md index 74ecfe04..ae427c75 100644 --- a/guide/browser/context.md +++ b/guide/browser/context.md @@ -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 diff --git a/guide/browser/interactivity-api.md b/guide/browser/interactivity-api.md index 14082c5f..2ef3fca0 100644 --- a/guide/browser/interactivity-api.md +++ b/guide/browser/interactivity-api.md @@ -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/) @@ -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/) @@ -126,7 +126,7 @@ test('triggers a triple click on an element', async () => { }) await userEvent.tripleClick(logo) - // 或直接从定位器上访问 + // 或者你可以直接从定位器上访问 await logo.tripleClick() expect(tripleClickFired).toBe(true) @@ -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 }) ``` @@ -299,7 +299,7 @@ test('clears input', async () => { expect(input).toHaveValue('foo') await userEvent.clear(input) - // 或直接从定位器上访问 + // 或者你可以直接从定位器上访问 await input.clear() expect(input).toHaveValue('') @@ -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') @@ -393,7 +393,7 @@ test('hovers logo element', async () => { const logo = page.getByRole('img', { name: /logo/ }) await userEvent.hover(logo) - // 或直接从定位器上访问 + // 或者你可以直接从定位器上访问 await logo.hover() }) ``` @@ -426,7 +426,7 @@ test('unhover logo element', async () => { const logo = page.getByRole('img', { name: /logo/ }) await userEvent.unhover(logo) - // 或直接从定位器上访问 + // 或者你可以直接从定位器上访问 await logo.unhover() }) ``` @@ -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) // 也可以使用相对于项目根目录的文件路径 @@ -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') diff --git a/guide/browser/preview.md b/guide/browser/preview.md index ff24521c..4067d5de 100644 --- a/guide/browser/preview.md +++ b/guide/browser/preview.md @@ -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' diff --git a/guide/in-source.md b/guide/in-source.md index 6227e9e2..0acad741 100644 --- a/guide/in-source.md +++ b/guide/in-source.md @@ -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) } diff --git a/guide/migration.md b/guide/migration.md index f81882f5..bc5b9bc3 100644 --- a/guide/migration.md +++ b/guide/migration.md @@ -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 ``` @@ -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 封装,直接调用。主要变更如下: @@ -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({ @@ -325,7 +325,7 @@ exports[`custom element with shadow root 1`] = ` ` ``` -### 已废弃的 API {#deprecated-apis-are-removed} +### 移除弃用的 API {#deprecated-apis-are-removed} Vitest 4.0 移除了以下废弃的配置项: @@ -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} diff --git a/guide/testing-types.md b/guide/testing-types.md index 8bbc27a7..65df9fa7 100644 --- a/guide/testing-types.md +++ b/guide/testing-types.md @@ -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 })) }) ``` @@ -106,7 +106,7 @@ expectTypeOf(one).toEqualTypeOf() const answer = 42 assertType(answer) -// @ts-expect-error 答案不是字符串 +// @ts-expect-error answer 不是 string 类型 assertType(answer) ``` @@ -116,7 +116,7 @@ assertType(answer) 这将通过,因为它预计会出现错误,但 “answer” 这个词有错别字,所以这是一个误报错误: ```ts -// @ts-expect-error 答案不是字符串 +// @ts-expect-error answer 不是 string 类型 assertType(answr) ```