Skip to content

Commit ff4fadb

Browse files
Jinjiangeddyerburgh
authored andcommitted
docs(zh-cn): sync recent updates (#275)
* [docs][zh-cn] sync recent updates * [docs][zh-cn] finished all translations
1 parent 4543c4f commit ff4fadb

14 files changed

+162
-50
lines changed

Diff for: docs/zh-cn/README.md

+5-6
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,25 @@
2424
- [attrs](api/options.md#attrs)
2525
- [listeners](api/options.md#listeners)
2626
- [clone](api/options.md#clone)
27+
- [provide](api/options.md#provide)
28+
- [其它选项](api/options.md#other-options)
2729
* [Wrapper](api/wrapper/README.md)
30+
* [attributes](api/wrapper/attributes.md)
31+
* [classes](api/wrapper/classes.md)
2832
* [contains](api/wrapper/contains.md)
2933
* [emitted](api/wrapper/emitted.md)
3034
* [emittedByOrder](api/wrapper/emittedByOrder.md)
3135
* [exists](api/wrapper/exists.md)
3236
* [destroy](api/wrapper/destroy.md)
3337
* [find](api/wrapper/find.md)
3438
* [findAll](api/wrapper/findAll.md)
35-
* [hasAttribute](api/wrapper/hasAttribute.md)
36-
* [hasClass](api/wrapper/hasClass.md)
37-
* [hasProp](api/wrapper/hasProp.md)
3839
* [hasStyle](api/wrapper/hasStyle.md)
3940
* [html](api/wrapper/html.md)
4041
* [is](api/wrapper/is.md)
4142
* [isEmpty](api/wrapper/isEmpty.md)
4243
* [isVueInstance](api/wrapper/isVueInstance.md)
4344
* [name](api/wrapper/name.md)
45+
* [props](api/wrapper/props.md)
4446
* [setComputed](api/wrapper/setComputed.md)
4547
* [setData](api/wrapper/setData.md)
4648
* [setMethods](api/wrapper/setMethods.md)
@@ -53,9 +55,6 @@
5355
* [contains](api/wrapper-array/contains.md)
5456
* [exists](api/wrapper/exists.md)
5557
* [destroy](api/wrapper-array/destroy.md)
56-
* [hasAttribute](api/wrapper-array/hasAttribute.md)
57-
* [hasClass](api/wrapper-array/hasClass.md)
58-
* [hasProp](api/wrapper-array/hasProp.md)
5958
* [hasStyle](api/wrapper-array/hasStyle.md)
6059
* [is](api/wrapper-array/is.md)
6160
* [isEmpty](api/wrapper-array/isEmpty.md)

Diff for: docs/zh-cn/SUMMARY.md

+5-6
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,25 @@
2222
- [attrs](api/options.md#attrs)
2323
- [listeners](api/options.md#listeners)
2424
- [clone](api/options.md#clone)
25+
- [provide](api/options.md#provide)
26+
- [其它选项](api/options.md#other-options)
2527
* [Wrapper](api/wrapper/README.md)
28+
* [attributes](api/wrapper/attributes.md)
29+
* [classes](api/wrapper/classes.md)
2630
* [contains](api/wrapper/contains.md)
2731
* [emitted](api/wrapper/emitted.md)
2832
* [emittedByOrder](api/wrapper/emittedByOrder.md)
2933
* [exists](api/wrapper/exists.md)
3034
* [destroy](api/wrapper/destroy.md)
3135
* [find](api/wrapper/find.md)
3236
* [findAll](api/wrapper/findAll.md)
33-
* [hasAttribute](api/wrapper/hasAttribute.md)
34-
* [hasClass](api/wrapper/hasClass.md)
35-
* [hasProp](api/wrapper/hasProp.md)
3637
* [hasStyle](api/wrapper/hasStyle.md)
3738
* [html](api/wrapper/html.md)
3839
* [is](api/wrapper/is.md)
3940
* [isEmpty](api/wrapper/isEmpty.md)
4041
* [isVueInstance](api/wrapper/isVueInstance.md)
4142
* [name](api/wrapper/name.md)
43+
* [props](api/wrapper/props.md)
4244
* [setComputed](api/wrapper/setComputed.md)
4345
* [setData](api/wrapper/setData.md)
4446
* [setMethods](api/wrapper/setMethods.md)
@@ -51,9 +53,6 @@
5153
* [contains](api/wrapper-array/contains.md)
5254
* [exists](api/wrapper/exists.md)
5355
* [destroy](api/wrapper-array/destroy.md)
54-
* [hasAttribute](api/wrapper-array/hasAttribute.md)
55-
* [hasClass](api/wrapper-array/hasClass.md)
56-
* [hasProp](api/wrapper-array/hasProp.md)
5756
* [hasStyle](api/wrapper-array/hasStyle.md)
5857
* [is](api/wrapper-array/is.md)
5958
* [isEmpty](api/wrapper-array/isEmpty.md)

Diff for: docs/zh-cn/api/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
- [attrs](./options.md#attrs)
1313
- [listeners](./options.md#listeners)
1414
- [clone](./options.md#clone)
15+
- [provide](./options.md#provide)
16+
- [其它选项](./options.md#other-options)
1517
* [Wrapper](./wrapper/README.md)
1618
* [contains](./wrapper/contains.md)
1719
* [emitted](./wrapper/emitted.md)
@@ -29,6 +31,7 @@
2931
* [isEmpty](./wrapper/isEmpty.md)
3032
* [isVueInstance](./wrapper/isVueInstance.md)
3133
* [name](./wrapper/name.md)
34+
* [props](./wrapper/props.md)
3235
* [setComputed](./wrapper/setComputed.md)
3336
* [setData](./wrapper/setData.md)
3437
* [setMethods](./wrapper/setMethods.md)
@@ -41,9 +44,6 @@
4144
* [contains](./wrapper-array/contains.md)
4245
* [exists](./wrapper/exists.md)
4346
* [destroy](./wrapper-array/destroy.md)
44-
* [hasAttribute](./wrapper-array/hasAttribute.md)
45-
* [hasClass](./wrapper-array/hasClass.md)
46-
* [hasProp](./wrapper-array/hasProp.md)
4747
* [hasStyle](./wrapper-array/hasStyle.md)
4848
* [is](./wrapper-array/is.md)
4949
* [isEmpty](./wrapper-array/isEmpty.md)

Diff for: docs/zh-cn/api/config.md

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
'transition-group': TransitionGroupStub
1313
}`
1414

15+
存储在 `config.stubs` 中的存根会被默认使用。
1516
用到的组件存根。它们会被传入挂载选项的 `stubs` 复写。
1617

1718
当把 `stubs` 作为一个数组传入挂载选项时,`config.stubs` 会被转换为一个数组,然后用只返回一个 `<!---->` 的基础组件进行存根。

Diff for: docs/zh-cn/api/mount.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ import Faz from './Faz.vue'
122122
describe('Foo', () => {
123123
it('renders a div', () => {
124124
const wrapper = mount(Foo, {
125-
stub: {
126-
Bar: '<div class="stubbed />',
125+
stubs: {
126+
Bar: '<div class="stubbed" />',
127127
BarFoo: true,
128128
FooBar: Faz
129129
}

Diff for: docs/zh-cn/api/options.md

+60-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# 挂载选项
22

3-
`mount``shallow` 的选项。该对象同时包含了 `vue-test-utils` 挂载选项和原始的 Vue 选项。
4-
5-
Vue 选项会在一个新的实例被创建的时候传递给组件。比如 `store``propsData`。想查阅完整的列表,请移步 [Vue API 文档](https://cn.vuejs.org/v2/api/)
3+
`mount``shallow` 的选项。该对象同时包含了 `vue-test-utils` 挂载选项和其它选项。
64

75
## `vue-test-utils` 特定的挂载选项
86

@@ -13,9 +11,9 @@ Vue 选项会在一个新的实例被创建的时候传递给组件。比如 `st
1311
- [`localVue`](#localvue)
1412
- [`attachToDocument`](#attachtodocument)
1513
- [`attrs`](#attrs)
16-
- [`provide`](#provide)
1714
- [`listeners`](#listeners)
1815
- [`clone`](#clone)
16+
- [`provide`](#provide)
1917

2018
### `context`
2119

@@ -26,9 +24,13 @@ Vue 选项会在一个新的实例被创建的时候传递给组件。比如 `st
2624
示例:
2725

2826
```js
27+
import Foo from './Foo.vue'
28+
import Bar from './Bar.vue'
29+
2930
const wrapper = mount(Component, {
3031
context: {
31-
props: { show: true }
32+
props: { show: true },
33+
children: [Foo, Bar]
3234
}
3335
})
3436

@@ -39,7 +41,7 @@ expect(wrapper.is(Component)).toBe(true)
3941

4042
- 类型:`{ [name: string]: Array<Component>|Component|string }`
4143

42-
为组件提供一个 slot 内容的对象。该对象中的键名就是相应的 slot 名,键值可以是一个组件、一个组件数组或一个字符串模板
44+
为组件提供一个 slot 内容的对象。该对象中的键名就是相应的 slot 名,键值可以是一个组件、一个组件数组、一个字符串模板或文本
4345

4446
示例:
4547

@@ -52,12 +54,33 @@ const wrapper = shallow(Component, {
5254
slots: {
5355
default: [Foo, Bar],
5456
fooBar: Foo, // 将会匹配 `<slot name="FooBar" />`。
55-
foo: '<div />'
57+
foo: '<div />',
58+
bar: 'bar'
5659
}
5760
})
5861
expect(wrapper.find('div')).toBe(true)
5962
```
6063

64+
#### 传递文本
65+
66+
你可以传递文本到 `slots`
67+
这里有两处限制。
68+
69+
这只在 Vue 2.2+ 及以上版本工作。
70+
71+
下面的这段代码的文本可以工作。
72+
73+
```js
74+
const wrapper = mount(ComponentWithSlots, { slots: { default: 'foobar' }})
75+
```
76+
77+
下面的这段代码的文本则不可以工作。
78+
79+
```js
80+
const wrapper1 = mount(ComponentWithSlots, { slots: { default: 'foo<span>bar</span>' }})
81+
const wrapper2 = mount(FooComponent, { slots: { default: 'foo {{ bar }}' }})
82+
```
83+
6184
### `stubs`
6285

6386
- 类型:`{ [name: string]: Component | boolean } | Array<string>`
@@ -166,3 +189,33 @@ expect(wrapper.vm.$route).toBeInstanceOf(Object)
166189
- 类型:`Object`
167190

168191
为组件传递用于注入的属性。可查阅 [provie/inject](https://cn.vuejs.org/v2/api/#provide-inject) 了解更多。
192+
193+
## 其它选项
194+
195+
`mount``shallow` 的选项包含了挂载选项之外的选项时,则会将它们通过[扩展](https://vuejs.org/v2/api/#extends)复写到其组件选项。
196+
197+
```js
198+
const Component = {
199+
template: '<div>{{ foo() }}{{ bar() }}{{ baz() }}</div>',
200+
methods: {
201+
foo () {
202+
return 'a'
203+
},
204+
bar () {
205+
return 'b'
206+
}
207+
}
208+
}
209+
const options = {
210+
methods: {
211+
bar () {
212+
return 'B'
213+
},
214+
baz () {
215+
return 'C'
216+
}
217+
}
218+
}
219+
const wrapper = mount(Component, options)
220+
expect(wrapper.text()).to.equal('aBC')
221+
```

Diff for: docs/zh-cn/api/shallow.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
- `{Object} options`
77
- `{boolean} attachToDocument`
88
- `{Object} context`
9+
- `{Array<Component|Object>|Component} children`
910
- `{Object} slots`
1011
- `{Array<Componet|Object>|Component|String} default`
1112
- `{Array<Componet|Object>|Component|String} named`
1213
- `{Object} mocks`
1314
- `{Object|Array<string>} stubs`
1415
- `{boolean} clone`
15-
- `{Object} children`
1616
- `{Vue} localVue`
1717

1818
- **返回值:**`{Wrapper}`

Diff for: docs/zh-cn/api/wrapper/attributes.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# `attributes()`
2+
3+
返回 `Wrapper` DOM 节点的特性对象。
4+
5+
- **返回值:**`{[attribute: string]: any}`
6+
7+
- **示例:**
8+
9+
```js
10+
import { mount } from 'vue-test-utils'
11+
import { expect } from 'chai'
12+
import Foo from './Foo.vue'
13+
14+
const wrapper = mount(Foo)
15+
expect(wrapper.attributes().id).toBe('foo')

Diff for: docs/zh-cn/api/wrapper/classes.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# `classes()`
2+
3+
返回 `Wrapper` DOM 节点的 class。
4+
5+
返回 class 名称的数组。
6+
7+
- **返回值:**`Array<{string}>`
8+
9+
- **示例:**
10+
11+
```js
12+
import { mount } from 'vue-test-utils'
13+
import { expect } from 'chai'
14+
import Foo from './Foo.vue'
15+
16+
const wrapper = mount(Foo)
17+
expect(wrapper.classes()).toContain('bar')
18+
```

Diff for: docs/zh-cn/api/wrapper/emitted.md

+12
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,15 @@ expect(wrapper.emitted('foo').length).toBe(2)
4444
// 断言事件的有效数据
4545
expect(wrapper.emitted('foo')[1]).toEqual([123])
4646
```
47+
48+
`.emitted()` 方法每次被调用时都返回相同的对象,而不是返回一个新的,所以当新事件被触发时该对象会被更新:
49+
50+
```js
51+
const emitted = wrapper.emitted()
52+
53+
expect(emitted.foo.length).toBe(1)
54+
55+
// 想办法让 `wrapper` 触发 "foo" 事件
56+
57+
expect(emitted.foo.length).toBe(2)
58+
```

Diff for: docs/zh-cn/api/wrapper/hasProp.md

-24
This file was deleted.

Diff for: docs/zh-cn/api/wrapper/props.md

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# `props()`
2+
3+
返回 `Wrapper` `vm` 的 props 对象。
4+
5+
**注意:该包裹器必须包含一个 Vue 示例。**
6+
7+
- **返回值:**`{[prop: string]: any}`
8+
9+
- **示例:**
10+
11+
```js
12+
import { mount } from 'vue-test-utils'
13+
import { expect } from 'chai'
14+
import Foo from './Foo.vue'
15+
16+
const wrapper = mount(Foo, {
17+
propsData: {
18+
bar: 'baz'
19+
}
20+
})
21+
expect(wrapper.props().bar).toBe('baz')
22+
```

Diff for: docs/zh-cn/guides/choosing-a-test-runner.md

+1
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,4 @@ Vue 的单文件组件在它们运行于 Node 或浏览器之前是需要预编
4343
- [使用 Mocha 的示例工程](https://github.com/vuejs/vue-test-utils-mocha-webpack-example)
4444
- [使用 tape 的示例工程](https://github.com/eddyerburgh/vue-test-utils-tape-example)
4545
- [使用 AVA 的示例工程](https://github.com/eddyerburgh/vue-test-utils-ava-example)
46+
- [tyu - Delightful web testing by egoist](https://github.com/egoist/tyu)

Diff for: docs/zh-cn/guides/dom-events.md

+17-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,23 @@ describe('键盘事件测试', () => {
189189

190190
点后面的按键名 `keydown.up` 会被翻译成一个 `keyCode`。这些被支持的按键名有:
191191

192-
* `enter`, `tab`, `delete`, `esc`, `space`, `up`, `down`, `left`, `right`
192+
| key name | key code |
193+
| --- | --- |
194+
| enter | 13 |
195+
| esc | 27 |
196+
| tab | 9 |
197+
| space | 32 |
198+
| delete | 46 |
199+
| backspace | 8 |
200+
| insert | 45 |
201+
| up | 38 |
202+
| down | 40 |
203+
| left | 37 |
204+
| right | 39 |
205+
| end | 35 |
206+
| home | 36 |
207+
| pageup | 33 |
208+
| pagedown | 34 |
193209

194210
## 重要事项
195211

0 commit comments

Comments
 (0)