SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler 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

Mais conteúdo relacionado

Destaque

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 viviendoJose Luis Marín de la Iglesia
 
MADE IN Welkenraedt (2015)
MADE IN Welkenraedt (2015)MADE IN Welkenraedt (2015)
MADE IN Welkenraedt (2015)CCILVN
 
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
 
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'engageaitetsionsengageait
 
Reseña historica Escuela La Herediana
Reseña historica Escuela La HeredianaReseña historica Escuela La Herediana
Reseña historica Escuela La HeredianaMEP
 
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 herenciaWilfredo Huaygua Florez
 
Epilogue(last chapter)
Epilogue(last chapter)Epilogue(last chapter)
Epilogue(last chapter)Sridevi Kv
 
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
 

Destaque (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...
 

Semelhante a 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 Microsoftdavrous
 
10 - deboguer-playbooks-ansible-automatisation
10 - deboguer-playbooks-ansible-automatisation10 - deboguer-playbooks-ansible-automatisation
10 - deboguer-playbooks-ansible-automatisationbibouechristian
 
09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisationbibouechristian
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-endClément Dubois
 
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-endFrançois Petitit
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentationjulien pauli
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalneuros
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalChristophe Villeneuve
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsOCTO 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 mareValtech
 
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 coreArnaud 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
 

Semelhante a 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 RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
 
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
 
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