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
Copy file name to clipboardExpand all lines: docs/en/guides/testing-SFCs-with-mocha-webpack.md
+43-43
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,22 @@
1
-
# Testing Single File Components with Mocha + webpack
1
+
# Tester des composants monofichiers avec Mocha + webpack
2
2
3
-
> An example project for this setup is available on[GitHub](https://github.com/vuejs/vue-test-utils-mocha-webpack-example).
3
+
> Un exemple de projet pour cette installation est disponible sur[GitHub](https://github.com/vuejs/vue-test-utils-mocha-webpack-example).
4
4
5
-
Another strategy for testing SFCs is compiling all our tests via webpack and then run it in a test runner. The advantage of this approach is that it gives us full support for all webpack and `vue-loader` features, so we don't have to make compromises in our source code.
5
+
Une des stratégies pour tester des composants monofichiers est de compiler tous nos tests via webpack puis de les passer dans un lanceur de tests. L'avantage de cette approche est qu'elle procure un support complet pour les fonctionnalités de webpack et de `vue-loader`, et ce, afin de ne pas réaliser de compromis dans notre code.
6
6
7
-
You can technically use any test runner you like and manually wire things together, but we've found[`mocha-webpack`](https://github.com/zinserjan/mocha-webpack)to provide a very streamlined experience for this particular task.
7
+
Techniquement, vous pouvez utiliser n'importe quel lanceur de tests et relier le tout manuellement. Cependant, nous avons trouvé[`mocha-webpack`](https://github.com/zinserjan/mocha-webpack)qui procure une expérience très simplifiée pour cette tâche particulière.
8
8
9
-
## Setting Up`mocha-webpack`
9
+
## Mettre en place`mocha-webpack`
10
10
11
-
We will assume you are starting with a setup that already has webpack, vue-loader and Babel properly configured - e.g. the `webpack-simple`template scaffolded by `vue-cli`.
11
+
On va supposer que vous commencez avec une installation qui a déjà webpack, vue-loader et Babel correctement configurés (cf. le template `webpack-simple`via `vue-cli`).
12
12
13
-
The first thing to do is installing test dependencies:
13
+
La première chose à faire est d'installer les dépendances de tests :
Next we need to define a test script in our`package.json`.
19
+
Ensuite, on doit définir un script test dans notre`package.json`.
20
20
21
21
```json
22
22
// package.json
@@ -27,19 +27,19 @@ Next we need to define a test script in our `package.json`.
27
27
}
28
28
```
29
29
30
-
A few things to note here:
30
+
Quelques éléments importants à noter :
31
31
32
-
-The `--webpack-config`flag specifies the webpack config file to use for the tests. In most cases, this would be identical to the config you use for the actual project with one small tweak. We will talk about this later.
32
+
-Le paramètre `--webpack-config`indique le fichier de configuration webpack à utiliser pour les tests. Dans la plupart des cas, c'est identique à la configuration du projet actuel avec une petite modification. On en reparlera plus tard.
33
33
34
-
-The `--require`flag ensures the file `test/setup.js`is run before any tests, in which we can setup the global environment for our tests to be run in.
34
+
-Le paramètre `--require`permet de s'assurer que le fichier `test/setup.js`est bien exécuté avant les tests. Dans celui-ci, on met en place l'environnement où nos tests vont être exécutés.
35
35
36
-
-The final argument is a glob for the test files to be included in the test bundle.
36
+
-Le dernier paramètre est un glob pour indiquer les fichiers de tests à inclure dans le paquetage.
37
37
38
-
### Extra webpack Configuration
38
+
### Configuration supplémentaire pour webpack
39
39
40
-
#### Externalizing NPM Dependencies
40
+
#### Externaliser les dépendances npm
41
41
42
-
In our tests we will likely import a number of NPM dependencies - some of these modules may be written without browser usage in mind and simply cannot be bundled properly by webpack. Another consideration is externalizing dependencies greatly improves test boot up speed. We can externalize all NPM dependencies with `webpack-node-externals`:
42
+
Dans nos tests, nous allons surement importer un nombre conséquent de dépendances npm, certaines d'entre elles n'ont pas été conçues pour une utilisation dans un navigateur et ne peuvent être empaquetées par webpack. Il faut aussi considérer qu'externaliser les dépendances augmente énormément la vitesse de lancement des tests. On peut externaliser toutes les dépendances npm avec `webpack-node-externals -externals`:
43
43
44
44
```js
45
45
// webpack.config.js
@@ -51,9 +51,9 @@ module.exports = {
51
51
}
52
52
```
53
53
54
-
#### Source Maps
54
+
#### Coordinateur de sources
55
55
56
-
Source maps need to be inlined to be picked up by `mocha-webpack`. The recommended config is:
56
+
La coordinateur de sources (« Source maps ») doit être indiquée pour être utilisé par `mocha-webpack`. La configuration recommandée est la suivante :
57
57
58
58
```js
59
59
module.exports= {
@@ -62,117 +62,117 @@ module.exports = {
62
62
}
63
63
```
64
64
65
-
If debugging via IDE, it's also recommended to add the following:
65
+
Si vous déboguez via votre IDE, il est recommandé d'ajouter la configuration suivante :
66
66
67
67
```js
68
68
module.exports= {
69
69
// ...
70
70
output: {
71
71
// ...
72
-
//use absolute paths in sourcemaps (important for debugging via IDE)
72
+
//utiliser des chemins absolus (c'est important si vous déboguez avec un IDE)
`vue-test-utils`requires a browser environment to run. We can simulate it in Node.js using `jsdom-global`:
81
+
`vue-test-utils`requiert en environnement de navigateur pour fonctionner. On peut le simuler avec Node.js en utilisant `jsdom-global`:
82
82
83
83
```bash
84
84
npm install --save-dev jsdom jsdom-global
85
85
```
86
86
87
-
Then in`test/setup.js`:
87
+
Puis dans`test/setup.js`:
88
88
89
89
```js
90
90
require('jsdom-global')()
91
91
```
92
92
93
-
This adds a browser environment to node, so that `vue-test-utils`can run correctly.
93
+
Cela ajoute un environnement de navigateur dans Node.js afin que `vue-test-utils`fonctionne correctement.
94
94
95
-
### Picking an Assertion Library
95
+
### Choisir une bibliothèque d'assertions
96
96
97
-
[Chai](http://chaijs.com/)is a popular assertion library that is commonly used alongside Mocha. You may also want to check out [Sinon](http://sinonjs.org/)for creating spies and stubs.
97
+
[Chai](http://chaijs.com/)est une bibliothèque populaire qui est généralement utilisée avec Mocha. Vous pouvez aussi jeter un coup d'œil à [Sinon](http://sinonjs.org/)pour créer des espions et des fonctions avec un comportement pré-programmé (« stubs »).
98
98
99
-
Alternatively you can use`expect`which is now part of Jest, and exposes [the exact same API](http://facebook.github.io/jest/docs/en/expect.html#content)in Jest docs.
99
+
Vous pouvez utiliser, alternativement,`expect`qui fait maintenant partie de Jest et expose [la même API](http://facebook.github.io/jest/docs/en/expect.html#content)dans la documentation de Jest.
100
100
101
-
We will be using `expect`here and make it globally available so that we don't have to import it in every test:
101
+
On va utiliser `expect`et le rendre globalement accessible afin de ne pas avoir à l'importer pour chaque test:
102
102
103
103
```bash
104
104
npm install --save-dev expect
105
105
```
106
106
107
-
Then in`test/setup.js`:
107
+
Puis dans`test/setup.js`:
108
108
109
109
```js
110
110
require('jsdom-global')()
111
111
112
112
global.expect=require('expect')
113
113
```
114
114
115
-
### Optimizing Babel for Tests
115
+
### Optimiser Babel pour les tests
116
116
117
-
Notice that we are using `babel-loader`to handle JavaScript. You should already have Babel configured if you are using it in your app via a `.babelrc` file. Here`babel-loader`will automatically use the same config file.
117
+
Notez que nous utilisons `babel-loader`pour gérer JavaScript. Vous devriez déjà avoir Babel de configuré si vous l'utilisez dans votre application via un fichier `.babelrc`. Ici`babel-loader`va automatiquement utiliser le même fichier de configuration.
118
118
119
-
One thing to note is that if you are using Node 6+, which already supports the majority of ES2015 features, you can configure a separate Babel [env option](https://babeljs.io/docs/usage/babelrc/#env-option)that only transpiles features that are not already supported in the Node version you are using (e.g. `stage-2` or flow syntax support, etc.)
119
+
Une autre chose à noter est que si vous utilisez une version de Node.js 6+, qui supporte déjà une majorité des fonctionnalités d'ES2015, vous pouvez configurer séparément un autre Babel [env option](https://babeljs.io/docs/usage/babelrc/#env-option)qui va uniquement transpiler les fonctionnalités non supportées dans la version de Node.js que vous utilisez (c.-à-d. stage-2 ou le support de la syntaxe flow, etc.).
120
120
121
-
### Adding a test
121
+
### Ajouter un test
122
122
123
-
Create a file in`src`named`Counter.vue`:
123
+
Créez dans le dossier`src`un fichier nommé`Counter.vue`:
124
124
125
125
```html
126
126
<template>
127
127
<div>
128
-
{{ count }}
129
-
<button@click="increment">Increment</button>
128
+
{{ counter }}
129
+
<button@click="increment">Incrementer</button>
130
130
</div>
131
131
</template>
132
132
133
133
<script>
134
134
exportdefault {
135
135
data () {
136
136
return {
137
-
count:0
137
+
counter:0
138
138
}
139
139
},
140
140
141
141
methods: {
142
142
increment () {
143
-
this.count++
143
+
this.counter++
144
144
}
145
145
}
146
146
}
147
147
</script>
148
148
```
149
149
150
-
And create a test file named `test/Counter.spec.js`with the following code:
150
+
Puis créez un test nommé `test/Counter.spec.js`avec le code suivant :
151
151
152
152
```js
153
153
import { shallow } from'vue-test-utils'
154
154
importCounterfrom'../src/Counter.vue'
155
155
156
156
describe('Counter.vue', () => {
157
-
it('increments count when button is clicked', () => {
157
+
it('incrémente le compteur quand le bouton est cliqué', () => {
158
158
constwrapper=shallow(Counter)
159
159
wrapper.find('button').trigger('click')
160
160
expect(wrapper.find('div').text()).toMatch('1')
161
161
})
162
162
})
163
163
```
164
164
165
-
And now we can run the test:
165
+
Et maintenant on peut lancer le test avec :
166
166
167
167
```
168
168
npm run unit
169
169
```
170
170
171
-
Woohoo, we got our tests running!
171
+
Woohoo, nos tests fonctionnent !
172
172
173
-
### Resources
173
+
### Ressources
174
174
175
-
-[Example project for this setup](https://github.com/vuejs/vue-test-utils-mocha-webpack-example)
175
+
-[Projet exemple pour cette installation](https://github.com/vuejs/vue-test-utils-mocha-webpack-example)
0 commit comments