You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<pclass="tip">**Cette page est en cours de traduction française. Revenez une autre fois pour lire une traduction achevée ou [participez à la traduction française ici](https://github.com/vuejs-fr/vuejs.org).**</p><p>Anything compatible with a module-based build system will work, but if you're looking for a specific recommendation, try the [Karma](http://karma-runner.github.io) test runner. It has a lot of community plugins, including support for [webpack](https://github.com/webpack/karma-webpack) and [Browserify](https://github.com/Nikku/karma-browserify). For detailed setup, please refer to each project's respective documentation, though these example Karma configurations for [webpack](https://github.com/vuejs-templates/webpack/blob/master/template/test/unit/karma.conf.js) and [Browserify](https://github.com/vuejs-templates/browserify/blob/master/template/karma.conf.js) may help you get started.</p>
9
+
Tout ce qui est compatible avec un système de build basé sur des modules fonctionnera. Mais si vous cherchez une recommandation particulière, essayez le lanceur de tests [Karma](http://karma-runner.github.io). Il y a beaucoup de plugins communautaires, incluant le support de[webpack](https://github.com/webpack/karma-webpack)et[Browserify](https://github.com/Nikku/karma-browserify). Pour une mise en place détaillée, référez-vous à la documentation respective de chaque projet. Ces exemples de configuration de Karma pour [webpack](https://github.com/vuejs-templates/webpack/blob/master/template/test/unit/karma.conf.js)et[Browserify](https://github.com/vuejs-templates/browserify/blob/master/template/karma.conf.js)pourront vous aider à démarrer.
10
10
11
-
## Simple Assertions
11
+
## Des assertions simples
12
12
13
-
In terms of code structure for testing, you don't have to do anything special in your components to make them testable. Just export the raw options:
13
+
En termes de structure de code pour les tests, vous n'avez rien de spécial à faire dans vos composants pour les rendre testables. Exportez juste les options en l'état :
14
14
15
15
```html
16
16
<template>
@@ -21,57 +21,57 @@ In terms of code structure for testing, you don't have to do anything special in
21
21
exportdefault {
22
22
data () {
23
23
return {
24
-
message:'hello!'
24
+
message:'bonjour !'
25
25
}
26
26
},
27
27
created () {
28
-
this.message='bye!'
28
+
this.message='au revoir !'
29
29
}
30
30
}
31
31
</script>
32
32
```
33
33
34
-
When you test that component, all you have to do is import the object along with Vue to make many common assertions:
34
+
Quand vous testez ce composant, tout ce que vous avez à faire est d'importer l'objet d'options aux côtés de Vue pour faire une série d'assertions communes :
35
35
36
36
```js
37
-
//Import Vue and the component being tested
37
+
//Importer Vue et le composant à tester
38
38
importVuefrom'vue'
39
39
importMyComponentfrom'path/to/MyComponent.vue'
40
40
41
-
//Here are some Jasmine 2.0 tests, though you can
42
-
//use any test runner / assertion library combo you prefer
41
+
//Ici nous avons plusieurs tests avec Jasmine 2.0, cependant vous pouvez utiliser
42
+
//n'importe quel combo de lanceur de tests / bibliothèque d'assertions que vous préférez
it('correctly sets the message when created', () => {
57
+
//Inspecter l'instance au montage du composant
58
+
it('affecte correctement les messages à la création', () => {
59
59
constvm=newVue(MyComponent).$mount()
60
-
expect(vm.message).toBe('bye!')
60
+
expect(vm.message).toBe('au revoir !')
61
61
})
62
62
63
-
//Mount an instance and inspect the render output
64
-
it('renders the correct message', () => {
63
+
//Monter une instance et inspecter le résultat en sortie
64
+
it('rend le message correct', () => {
65
65
constCtor=Vue.extend(MyComponent)
66
66
constvm=newCtor().$mount()
67
-
expect(vm.$el.textContent).toBe('bye!')
67
+
expect(vm.$el.textContent).toBe('au revoir !')
68
68
})
69
69
})
70
70
```
71
71
72
-
## Writing Testable Components
72
+
## Écrire des composants testables
73
73
74
-
A lot of component's render output are primarily determined by the props they receive. In fact, if a component's render output solely depends on its props, it becomes quite straightforward to test, similar to asserting the return value of a pure function with different arguments. Take a contrived example:
74
+
Une bonne partie du code en sortie du rendu d'un composant est principalement déterminée par les props qu'il reçoit. En fait, si le rendu d'un composant dépend uniquement de ses props, il devient assez facile à tester, de la même manière que l'on ferait une assertion sur la valeur de retour d'une fonction pure avec différents arguments. Voici un exemple :
75
75
76
76
```html
77
77
<template>
@@ -85,48 +85,48 @@ A lot of component's render output are primarily determined by the props they re
85
85
</script>
86
86
```
87
87
88
-
You can assert its render output with different props using the `propsData`option:
88
+
Vous pouvez faire des assertions sur le rendu en sortie avec différentes props en utilisant l'option `propsData` :
89
89
90
90
```js
91
91
importVuefrom'vue'
92
92
importMyComponentfrom'./MyComponent.vue'
93
93
94
-
//helper function that mounts and returns the rendered text
94
+
//Fonction utilitaire qui monte et retourne le texte rendu
it('renders correctly with different props', () => {
102
+
it('donne un rendu correct avec différentes props', () => {
103
103
expect(getRenderedText(MyComponent, {
104
-
msg:'Hello'
105
-
})).toBe('Hello')
104
+
msg:'Bonjour'
105
+
})).toBe('Bonjour')
106
106
107
107
expect(getRenderedText(MyComponent, {
108
-
msg:'Bye'
109
-
})).toBe('Bye')
108
+
msg:'Au revoir'
109
+
})).toBe('Au revoir')
110
110
})
111
111
})
112
112
```
113
113
114
-
## Asserting Asynchronous Updates
114
+
## Assertions sur des mises à jour asynchrones
115
115
116
-
Since Vue [performs DOM updates asynchronously](reactivity.html#Async-Update-Queue), assertions on DOM updates resulting from state change will have to be made in a`Vue.nextTick`callback:
116
+
Parce que Vue [fait les mises à jour du DOM de manière asynchrone](reactivity.html#File-d’attente-de-mise-a-jour-asynchrone), les assertions sur les mises à jour du DOM résultant d'un changement d'état doivent être faites dans une fonction de rappel`Vue.nextTick` :
117
117
118
118
```js
119
-
//Inspect the generated HTML after a state update
120
-
it('updates the rendered message when vm.message updates', done=> {
119
+
//Inspecter le HTML généré après une mise à jour d'état
120
+
it('met à jour le message rendu quand `vm.message` est mis à jour', done=> {
121
121
constvm=newVue(MyComponent).$mount()
122
122
vm.message='foo'
123
123
124
-
//wait a "tick" after state change before asserting DOM updates
124
+
//attendre une boucle (« tick ») après le changement d'état avant de faire l'assertion des mises à jour du DOM
125
125
Vue.nextTick(() => {
126
126
expect(vm.$el.textContent).toBe('foo')
127
127
done()
128
128
})
129
129
})
130
130
```
131
131
132
-
We are planning to work on a collection of common test helpers that makes it even simpler to render components with different constraints (e.g. shallow rendering that ignores child components) and assert their output.
132
+
Nous prévoyons de travailler sur une collection de fonctions utilitaires de tests communs pour rendre encore plus simple le rendu de composants avec différentes contraintes (par ex. des rendus peu profonds ignorant les composants enfants) et faire des assertions sur le code en sortie.
0 commit comments