SlideShare a Scribd company logo
1 of 17
Download to read offline
Jasmine
MOAR TESTS
Le problème
La fausse solution
Les outils
●
RequireJS pour modulariser http://requirejs.org/
●
Jasmine pour tester
http://pivotal.github.io/jasmine/
Que fait RequireJS ?
Il permet de gérer les dépendances de chaque
fichier :
models/truc.js:
<module> <deps> <callback>
define('models/truc', ['backbone'], function(Backbone) {
return Backbone.Model.extend({});
});
Dans quel but ?
●
S'assurer qu'un fichier est correctement chargé
avec ses dépendances
●
Pouvoir ne charger que ce dont on a besoin
●
Utiliser r.js pour minifier le tout
Comment utiliser Jasmine ?
●
Page web “classique”, pratique pour test/debug
●
Automatisé avec NodeJS, pour intégration
continue
Test simple
tests/models/truc.js:
define('tests/models/truc', ['models/truc'], function(Truc)
{
describe('models/truc', function() {
describe('someFunction()', function() {
it('always returns true', function() {
expect(new Truc().someFunction()).toBe(true);
});
});
});
});
Quelques fonctions
● .toBe()
● .not.toBe()
● .toMatch(/regexp/)
● .toBeDefined()
● .toBeNull()
http://pivotal.github.io/jasmine/#section-Expectations
Hiérarchie
●
Imbriquez les describe() à volonté !
●
describe(module)
– describe(sous-module)
●
describe(classe)
– describe(fonction)
beforeEach() et afterEach()
●
Respectivement exécuté avant et après chaque
test
●
Concerne seulement le describe() en cours
describe('whatever', function() {
var truc;
beforeEach(function() {
truc = new Truc();
});
});
Espions
●
Intercepte une
fonction
●
Ne l'exécute pas
●
Vérifie son exécution
●
Génère un retour
Syntaxe des espions
spyOn(truc, 'someFunction');
truc.someFunction(123);
expect(truc.someFunction).toHaveBeenCalled();
expect(truc.someFunction).toHaveBeenCalledWith(123);
Options
●
spyOn().andCallThrough() pour que la fonction
soit tout de même appelée
●
spyOn().andReturn(123) pour que la fonction
retourne une valeur particulière
●
spyOn().andCallFake(function(){}) pour
remplacer la fonction par une autre
Et l'asynchrone ?
runs(function() {
doSomeAjax(function callback() {
truc.someProperty = true;
});
});
waitsFor(function() {
return truc.someProperty;
}, 'should do something', 1000); // 1000 = timeout
runs(function() {
expect(truc.someProperty).toBe(true);
});
Donc ?
●
Tester son code, c'est
bien
●
Utiliser Jasmine, c'est
mieux
●
Avec RequireJS ?
1MD2Pm2cbmdgNVkP5kH6cYHZvBDYQFCQnC

More Related Content

Viewers also liked

20130613 guide ceux_quon_appelle_les_roms-web-2
20130613 guide ceux_quon_appelle_les_roms-web-220130613 guide ceux_quon_appelle_les_roms-web-2
20130613 guide ceux_quon_appelle_les_roms-web-2
larmurerie
 
Vendredi 13 juin à 10h50: retours d'expériences - 100 chances, 100 emplois Vi...
Vendredi 13 juin à 10h50: retours d'expériences - 100 chances, 100 emplois Vi...Vendredi 13 juin à 10h50: retours d'expériences - 100 chances, 100 emplois Vi...
Vendredi 13 juin à 10h50: retours d'expériences - 100 chances, 100 emplois Vi...
AssoAbri
 
Anr jean vi présentation
Anr jean vi présentationAnr jean vi présentation
Anr jean vi présentation
kevinjoaquim
 
Epilogue(last chapter)
Epilogue(last chapter)Epilogue(last chapter)
Epilogue(last chapter)
Sridevi Kv
 

Viewers also liked (20)

Fanie.scrabble
Fanie.scrabbleFanie.scrabble
Fanie.scrabble
 
Web 2.0 Una Descripcion Sencilla de los cambios que estamos viviendo
Web 2.0 Una Descripcion Sencilla de los cambios que estamos viviendoWeb 2.0 Una Descripcion Sencilla de los cambios que estamos viviendo
Web 2.0 Una Descripcion Sencilla de los cambios que estamos viviendo
 
Horizon Handimanagement
Horizon Handimanagement Horizon Handimanagement
Horizon Handimanagement
 
MADE IN Welkenraedt (2015)
MADE IN Welkenraedt (2015)MADE IN Welkenraedt (2015)
MADE IN Welkenraedt (2015)
 
Compositioncesaire$
Compositioncesaire$Compositioncesaire$
Compositioncesaire$
 
Folleto
FolletoFolleto
Folleto
 
Avenant à la Convention collective nationale de la Coiffure et des profession...
Avenant à la Convention collective nationale de la Coiffure et des profession...Avenant à la Convention collective nationale de la Coiffure et des profession...
Avenant à la Convention collective nationale de la Coiffure et des profession...
 
Avis technique - Vérification des informations RSE par l'OTI
Avis technique - Vérification des informations RSE par l'OTIAvis technique - Vérification des informations RSE par l'OTI
Avis technique - Vérification des informations RSE par l'OTI
 
Résultats enquête et si on s'engageait
Résultats enquête et si on s'engageaitRésultats enquête et si on s'engageait
Résultats enquête et si on s'engageait
 
Reseña historica Escuela La Herediana
Reseña historica Escuela La HeredianaReseña historica Escuela La Herediana
Reseña historica Escuela La Herediana
 
Martes, 2-7
Martes, 2-7Martes, 2-7
Martes, 2-7
 
20130613 guide ceux_quon_appelle_les_roms-web-2
20130613 guide ceux_quon_appelle_les_roms-web-220130613 guide ceux_quon_appelle_les_roms-web-2
20130613 guide ceux_quon_appelle_les_roms-web-2
 
Vendredi 13 juin à 10h50: retours d'expériences - 100 chances, 100 emplois Vi...
Vendredi 13 juin à 10h50: retours d'expériences - 100 chances, 100 emplois Vi...Vendredi 13 juin à 10h50: retours d'expériences - 100 chances, 100 emplois Vi...
Vendredi 13 juin à 10h50: retours d'expériences - 100 chances, 100 emplois Vi...
 
#NegoIRP Projet patronal remis aux OS @CFDT @CFTC @CFECGC @CGT @FO le 16 janv...
#NegoIRP Projet patronal remis aux OS @CFDT @CFTC @CFECGC @CGT @FO le 16 janv...#NegoIRP Projet patronal remis aux OS @CFDT @CFTC @CFECGC @CGT @FO le 16 janv...
#NegoIRP Projet patronal remis aux OS @CFDT @CFTC @CFECGC @CGT @FO le 16 janv...
 
Anr jean vi présentation
Anr jean vi présentationAnr jean vi présentation
Anr jean vi présentation
 
Los genes son los ladrillos de la herencia
Los genes son los ladrillos de la herenciaLos genes son los ladrillos de la herencia
Los genes son los ladrillos de la herencia
 
Tendances seniors
Tendances seniorsTendances seniors
Tendances seniors
 
Epilogue(last chapter)
Epilogue(last chapter)Epilogue(last chapter)
Epilogue(last chapter)
 
The Entertainer - Scott Joplin
The Entertainer - Scott JoplinThe Entertainer - Scott Joplin
The Entertainer - Scott Joplin
 
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
 

Similar to Human Talks Jasmine

Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratique
Frederic Hardy
 
10 - deboguer-playbooks-ansible-automatisation
10 - deboguer-playbooks-ansible-automatisation10 - deboguer-playbooks-ansible-automatisation
10 - deboguer-playbooks-ansible-automatisation
bibouechristian
 
09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation
bibouechristian
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
CocoaHeads France
 
Présentation de BackBone.JS
Présentation de BackBone.JSPrésentation de BackBone.JS
Présentation de BackBone.JS
Noirdes
 

Similar to Human Talks Jasmine (20)

Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratique
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoft
 
10 - deboguer-playbooks-ansible-automatisation
10 - deboguer-playbooks-ansible-automatisation10 - deboguer-playbooks-ansible-automatisation
10 - deboguer-playbooks-ansible-automatisation
 
Test angular 2+
Test angular 2+Test angular 2+
Test angular 2+
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-end
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
 
threads.pdf
threads.pdfthreads.pdf
threads.pdf
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentation
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupal
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupal
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
Node.js, le pavé dans la mare
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mare
 
Outils front-end
Outils front-endOutils front-end
Outils front-end
 
Comment réussir son projet en Angular 1.5 ?
Comment réussir son projet en Angular 1.5 ?Comment réussir son projet en Angular 1.5 ?
Comment réussir son projet en Angular 1.5 ?
 
Les tests comportementaux avec aspnet core
Les tests comportementaux avec aspnet coreLes tests comportementaux avec aspnet core
Les tests comportementaux avec aspnet core
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
 
Présentation de BackBone.JS
Présentation de BackBone.JSPrésentation de BackBone.JS
Présentation de BackBone.JS
 
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
 

Human Talks Jasmine