Skip to content

Commit 70c4108

Browse files
teuk1MachinisteWeb
authored andcommitted
unit-testing-vue-components.md modifications et traductions (#208)
* Modifications orthographe et traductions * Update unit-testing-vue-components.md
1 parent 8a8e29b commit 70c4108

File tree

1 file changed

+29
-29
lines changed

1 file changed

+29
-29
lines changed

src/v2/cookbook/unit-testing-vue-components.md

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -48,30 +48,30 @@ import { shallowMount } from '@vue/test-utils'
4848
import Hello from './Hello.vue'
4949

5050
test('Hello', () => {
51-
// render the component
51+
// restitue le composant
5252
const wrapper = shallowMount(Hello)
5353

54-
// should not allow for `username` less than 7 characters, excludes whitespace
54+
// n'accepte pas un `username` de moins de 7 caractères, exclut les espaces
5555
wrapper.setData({ username: " ".repeat(7) });
5656

57-
// assert the error is rendered
57+
// vérifie que `error` est restituée
5858
expect(wrapper.find(".error").exists()).toBe(true);
5959

60-
// update the name to be long enough
60+
// met à jour `username` afin qu'il soit suffisamment long
6161
wrapper.setData({ username: 'Lachlan' })
6262

63-
// assert the error has gone away
63+
// vérifie que `error` n'est plus restituée
6464
expect(wrapper.find(".error").exists()).toBe(false);
6565
});
6666
```
6767

68-
Le code ci-dessus montre comment tester l'apparition d'un message d'erreur si le username n'est pas assez long. Il nous donne une idée de ce en quoi consistent les tests unitaires de composants Vue.js : On render le composant, on lui fournit des données, puis on vérifie que le rendu correspond au données.
68+
Le code ci-dessus montre comment tester l'apparition d'un message d'erreur si le username n'est pas assez long. Il nous donne une idée de ce en quoi consistent les tests unitaires de composants Vue.js : on restitue le composant, on lui fournit des données, puis on vérifie que le rendu correspond aux données.
6969

70-
## Pourquoi tester?
70+
## Pourquoi tester ?
7171

72-
Quelques-un des avantages à tester ses composants :
72+
Les tests unitaires de composants ont beaucoup d'avantages :
7373

74-
* Les tests documentent comment le composant doit fonctionner
74+
* Ils fournissent une documentation sur la façon dont le composant doit fonctionner
7575
* Ils évitent d'avoir à re-tester manuellement après chaque changement du code
7676
* Ils réduisent le risque de régression quand on ajoute des fonctionnalités
7777
* Ils améliorent l'architecture du code
@@ -91,7 +91,7 @@ Un bon test unitaire se doit d'être :
9191
* Facile à comprendre
9292
* Tester un _seul comportement à la fois_
9393

94-
Reprenons l'exemple précédent, et ajoutons y le concept de <a href="https://en.wikipedia.org/wiki/Factory_(object-oriented_programming)">factory function</a> pour rendre nos tests plus compacts et plus clairs. Le composant devra donc :
94+
Reprenons l'exemple précédent et ajoutons y le concept de <a href="https://en.wikipedia.org/wiki/Factory_(object-oriented_programming)">factory function</a> pour rendre nos tests plus compacts et plus clairs. Le composant devra donc :
9595

9696
* Afficher un message 'Bienvenue sur le tutoriel Vue.js'.
9797
* Demander à l'utilisateur son username
@@ -110,7 +110,7 @@ Voyons d'abord le code du composant :
110110
v-if="error"
111111
class="error"
112112
>
113-
Choisissez un username de plus de 7 characteres.
113+
Choisissez un username de plus de 7 caractères.
114114
</div>
115115
</div>
116116
</template>
@@ -137,11 +137,11 @@ export default {
137137

138138
Ce que l'on doit tester :
139139

140-
* le `message` est il affiché?
140+
* le `message` est-il affiché ?
141141
* si `error` est `true`, `<div class="error">` devrait être visible
142142
* si `error` est `false`, `<div class="error">` ne devrait pas être présent
143143

144-
Et enfin la version naïve de nos tests utilisant jest:
144+
Et enfin la version naïve de nos tests utilisant jest :
145145

146146
```js
147147
import { shallowMount } from '@vue/test-utils'
@@ -156,13 +156,13 @@ describe('Foo', () => {
156156
}
157157
})
158158

159-
// vérifie si le message est restitué
159+
// vérifie que `message` est restitué
160160
expect(wrapper.find('.message').text()).toEqual('Hello World')
161161

162-
// vérifie que `error` est rendue
162+
// vérifie que `error` est restituée
163163
expect(wrapper.find('.error').exists()).toBeTruthy()
164164

165-
// met à jour `username` et vérifie que `error` n'est plus rendu
165+
// met à jour `username` et vérifie que `error` n'est plus restituée
166166
wrapper.setData({ username: 'Lachlan' })
167167
expect(wrapper.find('.error').exists()).toBeFalsy()
168168
})
@@ -198,27 +198,27 @@ const factory = (values = {}) => {
198198
}
199199

200200
describe("Foo", () => {
201-
it("renders a welcome message", () => {
201+
it("restitue un message de bienvenue", () => {
202202
const wrapper = factory();
203203

204204
expect(wrapper.find(".message").text()).toEqual(
205205
"Bienvenue sur le tutoriel Vue.js"
206206
);
207207
});
208208

209-
it("renders an error when username is less than 7 characters", () => {
209+
it("restitue une erreur quand `username` a moins de 7 caractères", () => {
210210
const wrapper = factory({ username: "" });
211211

212212
expect(wrapper.find(".error").exists()).toBeTruthy();
213213
});
214214

215-
it("renders an error when username is whitespace", () => {
215+
it("restitue une erreur quand `username` contient des espaces", () => {
216216
const wrapper = factory({ username: " ".repeat(7) });
217217

218218
expect(wrapper.find(".error").exists()).toBeTruthy();
219219
});
220220

221-
it("does not render an error when username is 7 characters or more", () => {
221+
it("ne restitue pas d'erreur quand `username` a 7 caractères ou plus", () => {
222222
const wrapper = factory({ username: "Lachlan" });
223223

224224
expect(wrapper.find(".error").exists()).toBeFalsy();
@@ -228,30 +228,30 @@ describe("Foo", () => {
228228

229229
À noter :
230230

231-
Au début du code, on déclare la fonction `factory` qui prend l'objet `values` et en construit le `data` pour renvoyer une nouvelle instance de `wrapper`. Du coup, plus besoin de dupliquer `const wrapper = shallowMount(Foo)` dans chaque test. Un autre avantage important : quand des composants plus complexes vont devoir être testés, le `mock` ou le `stub` d'une méthode ou d'une propriété calculée pourront facilement être mutualisés une seule fois.
231+
Au début du code, on déclare la fonction `factory` qui prend l'objet `values` et en construit le `data` pour renvoyer une nouvelle instance de `wrapper`. Donc plus besoin de dupliquer `const wrapper = shallowMount(Foo)` dans chaque test. Un autre avantage important : quand des composants plus complexes vont devoir être testés, le `mock` ou le `stub` d'une méthode ou d'une propriété calculée pourront facilement être mutualisés.
232232

233233
## Pour aller plus loin
234234

235-
Le test précédent est assez simple. En pratique on souhaitera souvent vérifier d'autres comportements comme :
235+
Le test précédent est assez simple. En pratique, on souhaitera souvent vérifier d'autres comportements comme :
236236

237237
* appeler une API
238-
* faire des `commit` ou des `dispatch` de mutations ou d'actions a un store `Vuex`
238+
* faire des `commit` ou des `dispatch` de mutations ou d'actions à un store `Vuex`
239239
* tester l'interactivité
240240

241241
Il existe des exemples plus complets illustrant ce genre de tests dans les [guides](https://vue-test-utils.vuejs.org/guides/) de Vue Test Utils.
242242

243-
Vue Test Utils et le gigantesque ecosystème JavaScript fournissant plein d’outils facilitant une couverture de test proche de 100%. Mais les tests unitaires ne sont qu’une partie de la pyramide de tests. On peut y inclure des tests d’intégration (e2e ou end to end), et du snapshot testing. Les tests unitaires sont les plus petits et les plus simples des tests - Ils vérifient les plus petites unités de travail, isolant ainsi chaque partie d’un même composant.
243+
Vue Test Utils et le gigantesque ecosystème JavaScript fournissant plein d’outils facilitant une couverture de test proche de 100%. Mais les tests unitaires ne sont qu’une partie de la pyramide de tests. On peut y inclure des tests d’intégration (e2e ou end to end) et du snapshot testing. De tous les types de tests, les tests unitaires sont les plus petits et les plus simples - ils vérifient les plus petites unités de travail, isolant ainsi chaque partie d’un même composant.
244244

245-
Le snapshot testing permet de sauvegarder le rendu HTML d’un composant Vue, et de le comparer au rendu généré chaque fois que les tests passent. Si quelque chose change dans le rendu, le développeur est averti et peut décider si le changement est intentionnel (le composant a été mis à jour) ou involontaire (le composant ne se comporte pas comme prévu).
245+
Le snapshot testing permet de sauvegarder le rendu HTML d’un composant Vue et de le comparer au rendu généré chaque fois que les tests passent. Si quelque chose change dans le rendu, le développeur est averti et peut décider si le changement est intentionnel (le composant a été mis à jour) ou involontaire (le composant ne se comporte pas comme prévu).
246246

247-
Les tests d’intégration testent l’interaction de plusieurs composants. Il s’agit de tests plus haut niveau. Par exemple tester si un utilisateur peut s’enregistrer se logger et changer son `username`. Ils peuvent être plus lent et plus long a exécuter que les tests unitaires ou snapshot.
247+
Les tests d’intégration testent l’interaction de plusieurs composants. Il s’agit de tests plus haut niveau. Par exemple tester si un utilisateur peut s’enregistrer, se logger et changer son `username`. Ils peuvent être plus lent et plus long à exécuter que les tests unitaires ou snapshot testing.
248248

249-
Les tests unitaires sont souvent utilisés lors du développement, soit pour aider le développeur à concevoir l’architecture d’un composant, soit pour l’aider a refactorer un composant existant. Ils sont souvent exécutés après chaque changement du code.
249+
Les tests unitaires sont souvent utilisés lors du développement, soit pour aider le développeur à concevoir l’architecture d’un composant, soit pour l’aider à refactorer un composant existant. Ils sont souvent exécutés après chaque changement du code.
250250

251-
Les test de plus haut niveau comme les tests d’intégration sont plus lent a l’exécution. Ces tests sont plutôt lancés avant de déployer une mise à jour en production, pour s’assurer que chaque partie du logiciel fonctionne correctement.
251+
Les tests de plus haut niveau comme les tests d’intégration sont plus lents a l’exécution. Ces tests sont plutôt lancés avant de déployer une mise à jour en production pour s’assurer que chaque partie du logiciel fonctionne correctement.
252252

253253
Plus d’info sur comment tester des composants Vue.js dans le livre de [Edd Yerburgh](https://eddyerburgh.me/) membre de la core team de Vue.js : [Testing Vue.js Applications](https://www.manning.com/books/testing-vuejs-applications) (en anglais).
254254

255-
## Quand éviter ce pattern
255+
## Quand éviter ces types de tests
256256

257257
Les tests unitaires sont une part importante de toute application sérieuse. Au début, quand l’application commence et que la vision complète n’est pas très claire, les tests unitaires peuvent ralentir un peu le développement, mais une fois l’architecture établie et que des utilisateurs réels utilisent l’application, les tests unitaires (et tous types de tests automatiques) sont essentiel à la stabilité et la scalabilité.

0 commit comments

Comments
 (0)