Skip to content

Commit 2339ccb

Browse files
YatyMachinisteWeb
authored andcommitted
common-tips.md: traduction (#18)
1 parent 7130a97 commit 2339ccb

File tree

1 file changed

+40
-41
lines changed

1 file changed

+40
-41
lines changed

docs/en/guides/common-tips.md

+40-41
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,116 @@
1-
# Common Tips
1+
# Astuces
22

3-
## Knowing What to Test
3+
## Savoir quoi tester
44

5-
For UI components, we don't recommend aiming for complete line-based coverage, because it leads to too much focus on the internal implementation details of the components and could result in brittle tests.
5+
Pour les composants graphiques (UI), nous ne recommandons pas une couverture complète. En effet, cela mène à trop d'attention sur les détails de l'implémentation interne des composants et pourrait produire des tests instables.
66

7-
Instead, we recommend writing tests that assert your component's public interface, and treat its internals as a black box. A single test case would assert that some input (user interaction or change of props) provided to the component results in the expected output (render result or emitted custom events).
7+
A contrario, nous recommandons d'écrire des tests qui vérifient le bon fonctionnement de l'interface public de vos composants et ainsi traiter le cœur de ceux-ci telle une boîte noire. Un simple test pourrait vérifier qu'une entrée utilisateur (due à une interaction ou un changement de props) passée au composant nous donnerait le résultat attendu (cela peut être un nouveau rendu ou l'envoi d'un évènement).
88

9-
For example, for the `Counter` component which increments a display counter by 1 each time a button is clicked, its test case would simulate the click and assert that the rendered output has increased by 1. The test doesn't care about how the Counter increments the value, it only cares about the input and the output.
9+
Par exemple, pour le composant `Counter`, qui incrémente un compteur visible de 1 à chaque fois qu'un bouton est cliqué, le scénario de test devrait simuler le clic puis s'assurer que le rendu visuel a bien été incrémenté d'un aussi. Le test se fiche de savoir comment le compteur a incrémenté la valeur, il s'occupe seulement de l'entrée et de la sortie (du résultat).
1010

11-
The benefit of this approach is that as long as your component's public interface remains the same, your tests will pass no matter how the component's internal implementation changes over time.
11+
Le bénéfice de cette approche est que tant que l'interface public de votre composant reste la même, vos tests passeront et ce peu importe le comportement interne de votre composant, qui pourrait changer avec le temps.
1212

13-
This topic is discussed with more details in a [great presentation by Matt O'Connell](http://slides.com/mattoconnell/deck#/).
13+
Ce sujet est discuté plus en détails dans une [très bonne présentation de Matt O'Connell](http://slides.com/mattoconnell/deck#/).
1414

15-
## Shallow Rendering
15+
## Rendu superficiel
1616

17-
In unit tests, we typically want to focus on the component being tested as an isolated unit and avoid indirectly asserting the behavior of its child components.
17+
Dans des tests unitaires, on souhaite s'intéresser au composant qui est en train d'être testé comme une unité isolée et ainsi éviter de s'assurer du bon comportement des composants enfants.
1818

19-
In addition, for components that contain many child components, the entire rendered tree can get really big. Repeatedly rendering all child components could slow down our tests.
19+
De plus, pour les composants qui contiennent beaucoup de composants enfant, l'intégralité de l'arbre de rendu peut être énorme. Répétitivement rendre tous les composants pourrait réduire la vitesse de nos tests.
2020

21-
`vue-test-utils` allows you to mount a component without rendering its child components (by stubbing them) with the `shallow` method:
21+
`vue-test-utils` vous permets de monter un composant sans avoir à rendre ses composants enfants (en les ignorants) avec la méthode `shallow` :
2222

2323
```js
2424
import { shallow } from 'vue-test-utils'
2525

26-
const wrapper = shallow(Component) // returns a Wrapper containing a mounted Component instance
27-
wrapper.vm // the mounted Vue instance
26+
const wrapper = shallow(Component) // retourne un wrapper contenant une instance de composant montée
27+
wrapper.vm // l'instance de Vue montée
2828
```
2929

30-
## Asserting Emitted Events
30+
## Assertion d'évènements émis
3131

32-
Each mounted wrapper automatically records all events emitted by the underlying Vue instance. You can retrieve the recorded events using the `wrapper.emitted()` method:
32+
Chaque wrapper monté va automatiquement enregistrer les évènements émis par l'instance de Vue en question. Vous pouvez récupérer ces évènements en utilisant la méthode `wrapper.emitted()` :
3333

3434
``` js
3535
wrapper.vm.$emit('foo')
3636
wrapper.vm.$emit('foo', 123)
3737

3838
/*
39-
wrapper.emitted() returns the following object:
39+
`wrapper.emitted()` retourne l'objet suivant :
4040
{
4141
foo: [[], [123]]
4242
}
4343
*/
4444
```
4545

46-
You can then make assertions based on these data:
47-
46+
Vous pouvez ensuite réaliser des assertions sur ces données :
4847
``` js
4948
import { expect } from 'chai'
5049

51-
// assert event has been emitted
50+
// asserte que l'évènement est bien émit
5251
expect(wrapper.emitted().foo).toBeTruthy()
5352

54-
// assert event count
53+
// asserte la taille du compteur d'évènement
5554
expect(wrapper.emitted().foo.length).toBe(2)
5655

57-
// assert event payload
56+
// asserte le contenu lié à l'évènement
5857
expect(wrapper.emitted().foo[1]).toEqual([123])
5958
```
6059

61-
You can also get an Array of the events in their emit order by calling [wrapper.emittedByOrder()](../api/wrapper/emittedByOrder.md).
60+
Vous pouvez aussi récupérer un tableau des évènements dans l'ordre d'émition en appelant [`wrapper.emittedByOrder()`](../api/wrapper/emittedByOrder.md).
6261

63-
## Manipulating Component State
62+
## Manipuler l'état d'un composant
6463

65-
You can directly manipulate the state of the component using the `setData` or `setProps` method on the wrapper:
64+
Vous pouvez directement manipuler l'état d'un composant en utilisant la méthode `setData` ou `setProps` sur le wrapper :
6665

6766
```js
6867
wrapper.setData({ count: 10 })
6968

7069
wrapper.setProps({ foo: 'bar' })
7170
```
7271

73-
## Mocking Props
72+
## Simuler des props
7473

75-
You can pass props to the component using Vue's built-in `propsData` option:
74+
Vous pouvez passer des props au composant en utilisant l'option `propsData` de Vue :
7675

7776
```js
7877
import { mount } from 'vue-test-utils'
7978

8079
mount(Component, {
8180
propsData: {
82-
aProp: 'some value'
81+
aProp: 'une valeur'
8382
}
8483
})
8584
```
8685

87-
You can also update the props of an already-mounted component with the `wrapper.setProps({})` method.
86+
Vous pouvez aussi mettre à jour les props d'un composant déjà monté avec la méthode `wrapper.setProps({})`.
8887

89-
*For a full list of options, please see the [mount options section](../api/options.md) of the docs.*
88+
*Pour une liste complète des options, veuillez regarder [la section sur les options de montage](../api/options.md) de la documentation.*
9089

91-
## Applying Global Plugins and Mixins
90+
## Appliquer des plugins globaux et des mixins
9291

93-
Some of the components may rely on features injected by a global plugin or mixin, for example `vuex` and `vue-router`.
92+
Des composants pourraient se fier à des fonctionnalités injectées par un plugin global ou un mixin, par exemple `vuex` ou `vue-router`.
9493

95-
If you are writing tests for components in a specific app, you can setup the same global plugins and mixins once in the entry of your tests. But in some cases, for example testing a generic component suite that may get shared across different apps, it's better to test your components in a more isolated setup, without polluting the global `Vue` constructor. We can use the [createLocalVue](../api/createLocalVue.md) method to achieve that:
94+
Si vous écrivez des tests pour des composants dans une application spécifique, vous pouvez mettre en place les mêmes plugins globaux et mixins en une seule fois dans vos tests. Dans certains cas, comme tester un composant générique utilisé par des applications différentes, il est favorable de tester ces composants dans une installation plus isolée, sans avoir à polluer le constructeur global `Vue`. On peut utiliser la méthode [`createLocalVue`](../api/createLocalVue.md) pour faire cela :
9695

9796
``` js
9897
import createLocalVue from 'vue-test-utils'
9998

100-
// create an extended Vue constructor
99+
// créer un constructeur local de Vue
101100
const localVue = createLocalVue()
102101

103-
// install plugins as normal
102+
// installer des plugins comme d'habitude
104103
localVue.use(MyPlugin)
105104

106-
// pass the localVue to the mount options
105+
// passe la `localVue` aux options de montage
107106
mount(Component, {
108107
localVue
109108
})
110109
```
111110

112-
## Mocking Injections
111+
## Simuler des injections
113112

114-
Another strategy for injected properties is simply mocking them. You can do that with the `mocks` option:
113+
Une stratégie alternative pour injecter des propriétés est de simplement les simuler. Vous pouvez faire cela avec l'option `mocks` :
115114

116115
```js
117116
import { mount } from 'vue-test-utils'
@@ -120,16 +119,16 @@ const $route = {
120119
path: '/',
121120
hash: '',
122121
params: { id: '123' },
123-
query: { q: 'hello' }
122+
query: { q: 'bonjour' }
124123
}
125124

126125
mount(Component, {
127126
mocks: {
128-
$route // adds the mocked $route object to the Vue instance before mounting component
127+
$route // ajoute l'objet route simulé à l'instance de Vue avant de monter le composant
129128
}
130129
})
131130
```
132131

133-
## Dealing with Routing
132+
## Gérer le routage
134133

135-
Since routing by definition has to do with the overall structure of the application and involves multiple components, it is best tested via integration or end-to-end tests. For individual components that rely on `vue-router` features, you can mock them using the techniques mentioned above.
134+
Depuis que le routage, par définition, porte sur la structure générale de l'application et implique plusieurs composants. Il est mieux testé via des tests d'intégration ou point à point (end-to-end). Pour des composants individuels qui se fie aux fonctionnalités de `vue-router`, vous pouvez les simuler en utilisant les techniques mentionnées plus haut.

0 commit comments

Comments
 (0)