SlideShare une entreprise Scribd logo
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

Contenu connexe

En vedette

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
Jose Luis Marín de la Iglesia
 
Horizon Handimanagement
Horizon Handimanagement Horizon Handimanagement
Horizon Handimanagement
Pascale Marchal Griveaud
 
MADE IN Welkenraedt (2015)
MADE IN Welkenraedt (2015)MADE IN Welkenraedt (2015)
MADE IN Welkenraedt (2015)
CCILVN
 
Folleto
FolletoFolleto
Folleto
msp ecuador
 
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...
Groupe SFC, cabinet d'expertise comptable
 
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
Groupe SFC, cabinet d'expertise comptable
 
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
etsionsengageait
 
Reseña historica Escuela La Herediana
Reseña historica Escuela La HeredianaReseña historica Escuela La Herediana
Reseña historica Escuela La Herediana
MEP
 
Martes, 2-7
Martes, 2-7Martes, 2-7
Martes, 2-7
padredehon
 
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-2larmurerie
 
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
 
#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...
Aude Courmont
 
Anr jean vi présentation
Anr jean vi présentationAnr jean vi présentation
Anr jean vi présentationkevinjoaquim
 
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
Wilfredo Huaygua Florez
 
Epilogue(last chapter)
Epilogue(last chapter)Epilogue(last chapter)
Epilogue(last chapter)Sridevi Kv
 
The Entertainer - Scott Joplin
The Entertainer - Scott JoplinThe Entertainer - Scott Joplin
The Entertainer - Scott Joplin
Rachardy Andriyanto
 
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...
VisionGEOMATIQUE2014
 

En vedette (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...
 

Similaire à 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 pratiqueFrederic Hardy
 
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
davrous
 
10 - deboguer-playbooks-ansible-automatisation
10 - deboguer-playbooks-ansible-automatisation10 - deboguer-playbooks-ansible-automatisation
10 - deboguer-playbooks-ansible-automatisation
bibouechristian
 
Test angular 2+
Test angular 2+Test angular 2+
Test angular 2+
Ussef Ben Amor
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
Christophe Villeneuve
 
09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation
bibouechristian
 
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
François Petitit
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
Clément Dubois
 
threads.pdf
threads.pdfthreads.pdf
threads.pdf
Patiento Del Mar
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentation
julien pauli
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupal
Christophe Villeneuve
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupal
neuros
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
OCTO Technology
 
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
Valtech
 
Outils front-end
Outils front-endOutils front-end
Outils front-end
Thomas Bodin
 
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 ?
Maxime Bernard
 
Les tests comportementaux avec aspnet core
Les tests comportementaux avec aspnet coreLes tests comportementaux avec aspnet core
Les tests comportementaux avec aspnet core
Arnaud Auroux
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaHeads France
 
Présentation de BackBone.JS
Présentation de BackBone.JSPrésentation de BackBone.JS
Présentation de BackBone.JSNoirdes
 
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...
fdussert
 

Similaire à 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