Skip to content

Commit 7130a97

Browse files
YatyMachinisteWeb
authored andcommitted
Guide: testing-SFCs-with-mocha-webpack.md (#4)
* testing-SFCs-with-mocha-webpack.md: traduction, première itération * testing-SFCs-with-mocha-webpack.md: corrections * corrections * correction * corrections * corrections
1 parent 8d929fa commit 7130a97

File tree

1 file changed

+43
-43
lines changed

1 file changed

+43
-43
lines changed

docs/en/guides/testing-SFCs-with-mocha-webpack.md

+43-43
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
# Testing Single File Components with Mocha + webpack
1+
# Tester des composants monofichiers avec Mocha + webpack
22

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).
44
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.
66

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.
88

9-
## Setting Up `mocha-webpack`
9+
## Mettre en place `mocha-webpack`
1010

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`).
1212

13-
The first thing to do is installing test dependencies:
13+
La première chose à faire est d'installer les dépendances de tests :
1414

1515
``` bash
1616
npm install --save-dev vue-test-utils mocha mocha-webpack
1717
```
1818

19-
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`.
2020

2121
```json
2222
// package.json
@@ -27,19 +27,19 @@ Next we need to define a test script in our `package.json`.
2727
}
2828
```
2929

30-
A few things to note here:
30+
Quelques éléments importants à noter :
3131

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.
3333

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.
3535

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.
3737

38-
### Extra webpack Configuration
38+
### Configuration supplémentaire pour webpack
3939

40-
#### Externalizing NPM Dependencies
40+
#### Externaliser les dépendances npm
4141

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` :
4343

4444
```js
4545
// webpack.config.js
@@ -51,9 +51,9 @@ module.exports = {
5151
}
5252
```
5353

54-
#### Source Maps
54+
#### Coordinateur de sources
5555

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 :
5757

5858
``` js
5959
module.exports = {
@@ -62,117 +62,117 @@ module.exports = {
6262
}
6363
```
6464

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 :
6666

6767
``` js
6868
module.exports = {
6969
// ...
7070
output: {
7171
// ...
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)
7373
devtoolModuleFilenameTemplate: '[absolute-resource-path]',
7474
devtoolFallbackModuleFilenameTemplate: '[absolute-resource-path]?[hash]'
7575
}
7676
}
7777
```
7878

79-
### Setting Up Browser Environment
79+
### Mettre en place l'environnement du navigateur
8080

81-
`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` :
8282

8383
```bash
8484
npm install --save-dev jsdom jsdom-global
8585
```
8686

87-
Then in `test/setup.js`:
87+
Puis dans `test/setup.js`:
8888

8989
``` js
9090
require('jsdom-global')()
9191
```
9292

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.
9494

95-
### Picking an Assertion Library
95+
### Choisir une bibliothèque d'assertions
9696

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 »).
9898

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.
100100

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 :
102102

103103
``` bash
104104
npm install --save-dev expect
105105
```
106106

107-
Then in `test/setup.js`:
107+
Puis dans `test/setup.js`:
108108

109109
``` js
110110
require('jsdom-global')()
111111

112112
global.expect = require('expect')
113113
```
114114

115-
### Optimizing Babel for Tests
115+
### Optimiser Babel pour les tests
116116

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.
118118

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.).
120120

121-
### Adding a test
121+
### Ajouter un test
122122

123-
Create a file in `src` named `Counter.vue`:
123+
Créez dans le dossier `src` un fichier nommé `Counter.vue`:
124124

125125
``` html
126126
<template>
127127
<div>
128-
{{ count }}
129-
<button @click="increment">Increment</button>
128+
{{ counter }}
129+
<button @click="increment">Incrementer</button>
130130
</div>
131131
</template>
132132

133133
<script>
134134
export default {
135135
data () {
136136
return {
137-
count: 0
137+
counter: 0
138138
}
139139
},
140140
141141
methods: {
142142
increment () {
143-
this.count++
143+
this.counter++
144144
}
145145
}
146146
}
147147
</script>
148148
```
149149

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 :
151151

152152
```js
153153
import { shallow } from 'vue-test-utils'
154154
import Counter from '../src/Counter.vue'
155155

156156
describe('Counter.vue', () => {
157-
it('increments count when button is clicked', () => {
157+
it('incrémente le compteur quand le bouton est cliqué', () => {
158158
const wrapper = shallow(Counter)
159159
wrapper.find('button').trigger('click')
160160
expect(wrapper.find('div').text()).toMatch('1')
161161
})
162162
})
163163
```
164164

165-
And now we can run the test:
165+
Et maintenant on peut lancer le test avec :
166166

167167
```
168168
npm run unit
169169
```
170170

171-
Woohoo, we got our tests running!
171+
Woohoo, nos tests fonctionnent !
172172

173-
### Resources
173+
### Ressources
174174

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)
176176
- [Mocha](https://mochajs.org/)
177177
- [mocha-webpack](http://zinserjan.github.io/mocha-webpack/)
178178
- [Chai](http://chaijs.com/)

0 commit comments

Comments
 (0)