diff --git a/docs/zh/guide/advanced/ssr.md b/docs/zh/guide/advanced/ssr.md index 0ff77af62..4cf4de42c 100644 --- a/docs/zh/guide/advanced/ssr.md +++ b/docs/zh/guide/advanced/ssr.md @@ -1,6 +1,6 @@ # 测试服务端渲染 -Vue Test Utils 提供了 `renderToString` 方法,用于测试使用服务器端渲染 (SSR) 的 Vue 应用程序。本指南将带你了解如何测试使用 SSR 的 Vue 应用程序。 +Vue Test Utils 提供了 `renderToString` 方法,用于测试服务器端渲染 (SSR) 的 Vue 应用程序。本指南将带你了解如何测试 SSR 的 Vue 应用程序。 ## `renderToString` diff --git a/docs/zh/guide/advanced/stubs-shallow-mount.md b/docs/zh/guide/advanced/stubs-shallow-mount.md index cb177f087..f145808ed 100644 --- a/docs/zh/guide/advanced/stubs-shallow-mount.md +++ b/docs/zh/guide/advanced/stubs-shallow-mount.md @@ -1,8 +1,8 @@ -# 桩 (Stubs) 与浅层挂载 +# 测试替身 (stub) 与浅挂载 -Vue Test Utils 提供了一些高级功能用于*桩*组件和指令。*桩*是指将自定义组件或指令的现有实现替换为一个不执行任何操作的虚拟实现,这可以简化本来复杂的测试。让我们来看一个例子。 +Vue Test Utils 提供了一些高级功能用于为组件和指令*创建测试替身* (stubbing)。*测试替身* (stub) 是指将自定义组件或指令的现有实现替换为一个不执行任何操作的虚拟实现,这可以简化本来复杂的测试。让我们来看一个例子。 -## 桩化单个子组件 +## 为单个子组件创建测试替身 一个常见的例子是当你想要测试一个在组件层级中非常高的组件时。 @@ -57,9 +57,9 @@ test('stubs component with custom template', () => { }) ``` -注意,模板中显示的是 ``,而不是 ``。我们用一个桩替换了它——在这种情况下,我们通过传入一个 `template` 提供了自己的实现。 +注意,模板中显示的是 ``,而不是 ``。我们用一个测试替身替换了它,在这种情况下,我们通过传入一个 `template` 提供了自己的实现。 -你也可以获取一个默认的桩,而不需要提供自己的实现: +你也可以获取一个默认的测试替身,而不需要提供自己的实现: ```js test('stubs component', () => { @@ -81,15 +81,15 @@ test('stubs component', () => { }) ``` -这将桩化整个渲染树中的*所有* `` 组件,而不管它们出现在哪个层级。这就是为什么它在 `global` 挂载选项中的原因。 +这将为整个渲染树中的*所有* `` 组件创建测试替身,而不管它们出现在哪个层级。这就是为什么它在 `global` 挂载选项中的原因。 ::: tip 要桩化组件,你可以使用 `components` 中的键或组件的名称。如果在 `global.stubs` 中同时给出这两者,将优先使用键。 ::: -## 桩化所有子组件 +## 为所有子组件创建测试替身 -有时你可能想要桩化*所有*自定义组件。例如,你可能有这样的组件: +有时你可能想要为*所有*自定义组件创建测试替身。例如,你可能有这样的组件: ```js const ComplexComponent = { @@ -103,7 +103,7 @@ const ComplexComponent = { } ``` -想象一下,每个 `` 组件都做一些复杂的事情,而你只对测试 `

` 是否渲染正确的问候语感兴趣。你可以这样做: +想象一下,每个 `` 组件都会做一些复杂的事情,而你只对测试 `

` 是否渲染正确的问候语感兴趣。那么你可以这样做: ```js const wrapper = mount(ComplexComponent, { @@ -117,7 +117,7 @@ const wrapper = mount(ComplexComponent, { }) ``` -但这需要很多样板代码。VTU 有一个 `shallow` 挂载选项,可以自动桩化所有子组件: +但这需要很多样板代码。VTU 有一个 `shallow` 挂载选项,可以自动为所有子组件创建测试替身: ```js {3} test('shallow stubs out all child components', () => { @@ -136,12 +136,12 @@ test('shallow stubs out all child components', () => { ``` ::: tip -如果你使用的是 VTU V1,你可能记得这个方法叫 `shallowMount`。这个方法仍然可用——它与写 `shallow: true` 是一样的。 +如果你使用的是 VTU V1,你可能记得这个方法叫 `shallowMount`。这个方法仍然可用,它与写 `shallow: true` 是一样的。 ::: -## 桩化所有子组件但有例外 +## 为所有子组件创建测试替身同时接受例外 -有时你想要桩化*所有*自定义组件,除了特定的一个。让我们考虑一个例子: +有时你想要为*所有*自定义组件创建测试替身,但除了特定的一个。让我们考虑一个例子: ```js const ComplexA = { @@ -159,7 +159,7 @@ const ComplexComponent = { } ``` -通过使用 `shallow` 挂载选项,可以自动桩化所有子组件。如果我们想要明确选择不桩化特定组件,可以在 `stubs` 中提供其名称,值设置为 `false。` +通过使用 `shallow` 挂载选项,可以自动为所有子组件创建测试替身。如果我们想要明确选择不为某个特定组件创建测试替身,可以在 `stubs` 中提供其名称,值设置为 `false。` ```js {3} test('shallow allows opt-out of stubbing specific component', () => { @@ -180,9 +180,9 @@ test('shallow allows opt-out of stubbing specific component', () => { }) ``` -## 桩化异步组件 +## 为异步组件创建测试替身 -如果你想要桩化一个异步组件,则有两种行为。例如,你可能有这样的组件: +如果你想要为一个异步组件创建测试替身,则有两种做法。例如,你可能有这样的组件: ```js // AsyncComponent.js @@ -200,8 +200,7 @@ const App = defineComponent({ }) ``` -第一种行为是使用你在组件中定义的键来加载异步组件。在这个例子中,我们使用了键 “MyComponent”。 -在测试用例中不需要使用 `async/await`,因为组件在解析之前已经被桩化。 +第一种做法是使用你在组件中定义的键来加载异步组件。在这个例子中,我们使用了键 “MyComponent”。在测试用例中不需要使用 `async/await`,因为组件在解析之前已经被创建了测试替身。 ```js test('stubs async component without resolving', () => { @@ -217,8 +216,7 @@ test('stubs async component without resolving', () => { }) ``` -第二种行为是使用异步组件的名称。在这个例子中,我们使用了名称 “AsyncComponent”。 -现在需要使用 `async/await`,因为异步组件需要解析,然后才能通过在异步组件中定义的名称进行桩化。 +第二种做法是使用异步组件的名称。在这个例子中,我们使用了名称 “AsyncComponent”。现在需要使用 `async/await`,因为异步组件需要解析,然后才能通过在异步组件中定义的名称创建测试替身。 **确保在异步组件中定义名称!** @@ -238,7 +236,7 @@ test('stubs async component with resolving', async () => { }) ``` -## 桩化指令 +## 为指令创建测试替身 有时指令会执行非常复杂的操作,比如进行大量的 DOM 操作,这可能导致测试中的错误 (由于 JSDOM 与整个 DOM 行为不相似)。一个常见的例子是来自各种库的工具提示指令,它们通常严重依赖于测量 DOM 节点的位置/大小。 @@ -275,10 +273,10 @@ test('stubs component with custom template', () => { ``` ::: tip -使用 `vCustomDirective` 命名方案来区分组件和指令,灵感来自于[相同方法](https://vuejs.org/api/sfc-script-setup.html#using-custom-directives)在 ` ``` -它简单地将一个 `` 传送到其他地方。这对于此示例的目的来说很简单。 +它单纯地将一个 `` 传送到其他地方。此示例的目的很简单。 -`Signup.vue` 是一个表单,用于验证 `username` 是否大于 8 个字符。如果是,当提交时,它会发出一个 `signup` 事件,并将 `username` 作为有效载荷。测试这个将是我们的目标。 +`Signup.vue` 是一个表单,用于验证 `username` 是否大于 8 个字符。如果是,它在提交时会发出一个 `signup` 事件,并将 `username` 作为有效载荷。我们的目标就是测试这个。 ```vue