@guillaumeehret
Lyon JUG
développer en toute sérénité
Tests Javascript
Guillaume EHRET - @guillaumeehret
Lyon JUG
Slide 2
Slide 2 text
@guillaumeehret
Lyon JUG
Guillaume EHRET
http://javamind-fr.blogspot.fr/
Slide 3
Slide 3 text
@guillaumeehret
Lyon JUG
Slide 4
Slide 4 text
@guillaumeehret
Lyon JUG
Les 20 & 21 avril 2017
https://www.mix-it.fr/
CPE LYON
Slide 5
Slide 5 text
@guillaumeehret
Lyon JUG
Présentation
Pourquoi les tests sont importants ?
Le Javascript n’est pas sale
Exécuter des tests en JavaScript
Jasmine comment écrire des tests
Slide 6
Slide 6 text
@guillaumeehret
Lyon JUG
System under test
Slide 7
Slide 7 text
@guillaumeehret
Lyon JUG
System under test
Slide 8
Slide 8 text
@guillaumeehret
Lyon JUG
Les collaborateurs
Slide 9
Slide 9 text
@guillaumeehret
Lyon JUG
Test unitaire
Slide 10
Slide 10 text
@guillaumeehret
Lyon JUG
Mocker les collaborateurs
Slide 11
Slide 11 text
@guillaumeehret
Lyon JUG
Tests e2e
Slide 12
Slide 12 text
@guillaumeehret
Lyon JUG
Boite noire
Slide 13
Slide 13 text
@guillaumeehret
Lyon JUG
Entrées Sorties
Boite noire
Slide 14
Slide 14 text
@guillaumeehret
Lyon JUG
Entrées Sorties
Arrange Act Assert
Méthode AAA
Slide 15
Slide 15 text
@guillaumeehret
Lyon JUG
Présentation
Pourquoi les tests sont importants ?
Le Javascript n’est pas sale
Exécuter des tests en JavaScript
Jasmine comment écrire des tests
Slide 16
Slide 16 text
@guillaumeehret
Lyon JUG
Lorsque vous codez,
est ce que vous aimez ?
Slide 17
Slide 17 text
@guillaumeehret
Lyon JUG
source: http://giphy.com/
naviguer à vue ?
Slide 18
Slide 18 text
@guillaumeehret
Lyon JUG
source: http://giphy.com/
Les regressions ?
Slide 19
Slide 19 text
@guillaumeehret
Lyon JUG
Les tests vous aident à coder
sereinement
Slide 20
Slide 20 text
@guillaumeehret
Lyon JUG
source: http://giphy.com/
Design
Slide 21
Slide 21 text
@guillaumeehret
Lyon JUG
source: http://giphy.com/
Documentation
Slide 22
Slide 22 text
@guillaumeehret
Lyon JUG
Présentation
Pourquoi les tests sont importants ?
Le Javascript n’est pas sale
Exécuter des tests en JavaScript
Jasmine comment écrire des tests
Slide 23
Slide 23 text
@guillaumeehret
Lyon JUG
…..
Slide 24
Slide 24 text
@guillaumeehret
Lyon JUG
var x = 0.1;
var y = 0.2;
Que vaut x+y ?
Slide 25
Slide 25 text
@guillaumeehret
Lyon JUG
var x = 0.1;
var y = 0.2;
Que vaut x+y ?
x+y = 0.30000000000000004
Floating point problem
Slide 26
Slide 26 text
@guillaumeehret
Lyon JUG
var color = [];
color[1] = 'red';
Que vaut color.length ?
Slide 27
Slide 27 text
@guillaumeehret
Lyon JUG
var color = [];
color[1] = 'red';
Que vaut color.length ?
color.length = 2
Array length is not size
Slide 28
Slide 28 text
@guillaumeehret
Lyon JUG
function status(x) {
if (x = 10) {
return 'win';
}
return 'loose';
}
Que vaut status(3) ?
Slide 29
Slide 29 text
@guillaumeehret
Lyon JUG
function status(x) {
if (x = 10) {
return 'win';
}
return 'loose';
}
Que vaut status(3) ?
win
Accidentally using assignment operator
Slide 30
Slide 30 text
@guillaumeehret
Lyon JUG
Que vaut
true + 4 ?
5 + '4' ?
Slide 31
Slide 31 text
@guillaumeehret
Lyon JUG
Que vaut
true + 4 ?
5 + '4' ?
true + 4 = 5
5 + '4' = '54'
JavaScript often convert value in number
Slide 32
Slide 32 text
@guillaumeehret
Lyon JUG
source: http://giphy.com/
Don’t be afraid
Slide 33
Slide 33 text
@guillaumeehret
Lyon JUG
Présentation
Pourquoi les tests sont importants ?
Le Javascript n’est pas sale
Exécuter des tests en JavaScript
Jasmine comment écrire des tests
Slide 34
Slide 34 text
@guillaumeehret
Lyon JUG
Slide 35
Slide 35 text
@guillaumeehret
Lyon JUG
Serveur HTTP
Application Javascript
Fichiers specs.js
Runner
(page qui lance les tests)
HTML
JS
specs
watch
start
start & exec
results for reports
1
2
3
4
Slide 36
Slide 36 text
@guillaumeehret
Lyon JUG
source: http://giphy.com/
Slide 37
Slide 37 text
@guillaumeehret
Lyon JUG
Présentation
Pourquoi les tests sont importants ?
Le Javascript n’est pas sale
Exécuter des tests en JavaScript
Jasmine comment écrire des tests
Slide 38
Slide 38 text
@guillaumeehret
Lyon JUG
Slide 39
Slide 39 text
@guillaumeehret
Lyon JUG
Lisibilité
Slide 40
Slide 40 text
@guillaumeehret
Lyon JUG
Lisibilité
Maintenabilité
Slide 41
Slide 41 text
@guillaumeehret
Lyon JUG
Lisibilité
Maintenabilité
Confiance
Slide 42
Slide 42 text
@guillaumeehret
Lyon JUG
Questions
Slide 43
Slide 43 text
@guillaumeehret
Lyon JUG
https://github.com/Dev-Mind/lyonjug-testjs