SlideShare une entreprise Scribd logo
Tests unitaires JavaScript
Xavier NOPRE – 14/05/2013
GRENOBLE
Xavier NOPRE
@xnopre xnopre.blogspot.com
Indépendant
Développeur
Agiliste
Jasmine : C'est quoi ?
 Un framework de tests unitaires pour JavaScript
  fournit un cadre pour écrire les tests unitaires
 Indépendant d'autres librairies
 Ne nécessitant pas de DOM
Mise en route ?
 Le site et la doc : http://pivotal.github.io/jasmine/
 Télécharger le ZIP et dézipper :
 https://github.com/downloads/pivotal/jasmine/jasmine-
standalone-1.3.1.zip
 Afficher SpecRunner.html dans le navigateur
 Editer :
 Les tests dans le répertoire spec
 Le code dans le répertoire src
 Et pour mes tests ?
Jouer mes tests ?
 Editer SpecRunner.html :
Et ça ressemble à quoi ? 1/2
 Suite de tests :
describe("Ma suite de tests : ", function() {
...
});
 Suite dans des suites :
describe("Ma suite de tests : ", function() {
...
describe("Suite dans la suite: ", function() {
...
});
});
Et ça ressemble à quoi ? 2/2
 Code avant chaque test "before" :
beforeEach(function() {
...
});
 Test :
it("should display initial message", function() {
expect(xxx).toEqual(yyy);
});
 Etc …
Je veux voir !
Et tester le DOM ?
Extension jasmine-jquery :
 https://github.com/velesin/jasmine-jquery
 Ajoute des assertions spécifiques :
 toBe(selector), toBeHidden, toHaveCss, toHaveAttr,
toBeFocused, …
 Ajoute une API de chargement de fixtures HTML, CSS,
JSON
 Usage :
 Ajouter jasmine-jquery.js au test runner
Et tester mes requêtes Ajax ?
Extension jasmine-ajax :
 https://github.com/pivotal/jasmine-ajax
 Compatible avec jQuery
 Permet de "mocker" les requêtes jQuery.ajax pour :
 Vérifier ces requêtes et leurs paramètres
 Simuler leurs succès, échecs, et données renvoyées
 Usage :
 Ajouter jasmine-ajax.js au test runner
Et actuellement, t'en es où ? (REX)
 Jasmine (ou autre) : super !
 Traitement de données, formatages, … : OK !
 Tests sur le DOM : ….
 Investissement important
 Très proche du rendu (trop ? …)
 Mais bien pratique !
 Exemples
 Xavier NOPRE :
 Développeur logiciel passionné (Java &Web)
 Pratique et partage l’agilité depuis 2007
 Indépendant. Missions :
 Développements sur mesure et accompagnement de projet
 En mode agile
 Coaching en agilité, Scrum, et ingénierie agile
MERCI
@xnopre xnopre.blogspot.com
Annexes
Retrouvez ici quelques captures des écrans
présentés lors de la session
Page de test Jasmine après unzip
Fichier : MesTests.js
describe("Ma suite de tests : ", function() {
var message;
beforeEach(function() {
message = "Hello HumanTalks";
});
it("should display initial message", function() {
expect(message).toEqual("Hello HumanTalks");
});
describe("Une 'sous' suite de tests : ", function() {
it("should add Grenoble", function() {
message = htgre.expandForHTGrenoble(message);
expect(message).toEqual("Hello HumanTalks Grenoble");
});
});
});
Fichier : MonCode.js
(function(){
window.htgre = {
expandForHTGrenoble: function(message) {
return message + " Grenoble";
}
};
})();
Page de test Jasmine avec mes tests démo

Contenu connexe

Tendances

Angular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUGAngular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUG
William Marques
 
20091008 Tests Interaces Web Riches Selenium
20091008   Tests Interaces Web Riches Selenium20091008   Tests Interaces Web Riches Selenium
20091008 Tests Interaces Web Riches Selenium
GreenIvory
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
aliagadir
 
Netbeans Install
Netbeans InstallNetbeans Install
Netbeans Install
Dghaies Jihed , PSM I Ⓡ
 
ParisJUG Spring Boot
ParisJUG Spring BootParisJUG Spring Boot
ParisJUG Spring Boot
Julien Sadaoui
 
Déploiement d'applications Java EE
Déploiement d'applications Java EEDéploiement d'applications Java EE
Déploiement d'applications Java EE
javalabsf
 
Les annotations
Les annotationsLes annotations
Les annotations
Mouna Dhaouadi
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
Antoine Rey
 
Play Framework
Play FrameworkPlay Framework
Play Framework
Armaklan
 
Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613
SOAT
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
Antoine Rey
 
Java 5, un bilan
Java 5,  un bilanJava 5,  un bilan
Java 5, un bilan
teejug
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
Antoine Rey
 
Multi-Threading Et Cocoa
Multi-Threading Et CocoaMulti-Threading Et Cocoa
Multi-Threading Et Cocoa
CocoaHeads France
 
#9 Deploiement Complexe
#9 Deploiement Complexe#9 Deploiement Complexe
#9 Deploiement Complexe
Guillaume Sauthier
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de Tomcat
Mohamed Ben Bouzid
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
Mathias Kluba
 

Tendances (18)

Ejb3 1-server-setup fr
Ejb3 1-server-setup frEjb3 1-server-setup fr
Ejb3 1-server-setup fr
 
Angular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUGAngular + JHipster @ Paris JUG
Angular + JHipster @ Paris JUG
 
20091008 Tests Interaces Web Riches Selenium
20091008   Tests Interaces Web Riches Selenium20091008   Tests Interaces Web Riches Selenium
20091008 Tests Interaces Web Riches Selenium
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Netbeans Install
Netbeans InstallNetbeans Install
Netbeans Install
 
ParisJUG Spring Boot
ParisJUG Spring BootParisJUG Spring Boot
ParisJUG Spring Boot
 
Déploiement d'applications Java EE
Déploiement d'applications Java EEDéploiement d'applications Java EE
Déploiement d'applications Java EE
 
Les annotations
Les annotationsLes annotations
Les annotations
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Java 5, un bilan
Java 5,  un bilanJava 5,  un bilan
Java 5, un bilan
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
Multi-Threading Et Cocoa
Multi-Threading Et CocoaMulti-Threading Et Cocoa
Multi-Threading Et Cocoa
 
#9 Deploiement Complexe
#9 Deploiement Complexe#9 Deploiement Complexe
#9 Deploiement Complexe
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de Tomcat
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 

En vedette

Aider les équipes à mieux répondre aux besoins d'affaires
Aider les équipes à mieux répondre aux besoins d'affairesAider les équipes à mieux répondre aux besoins d'affaires
Aider les équipes à mieux répondre aux besoins d'affaires
Stephane Lecuyer, CSM/CSP, Trainer
 
Cellcast de lacquisition client à la gestion du churn
Cellcast   de lacquisition client à la gestion du churnCellcast   de lacquisition client à la gestion du churn
Cellcast de lacquisition client à la gestion du churn
AFMM
 
Presentation des ressources numériques en SVT
Presentation des ressources numériques en SVTPresentation des ressources numériques en SVT
Presentation des ressources numériques en SVT
annemariemichaud
 
Veille sur Internet, les outils qui font gagner du temps
Veille sur Internet, les outils qui font gagner du tempsVeille sur Internet, les outils qui font gagner du temps
Veille sur Internet, les outils qui font gagner du temps
Vincent Pereira
 
6.1.3. cr-audit-des-comptes
6.1.3. cr-audit-des-comptes6.1.3. cr-audit-des-comptes
6.1.3. cr-audit-des-comptes
bamaparis
 
25 de mayo de 1810.
25 de mayo de 1810.25 de mayo de 1810.
25 de mayo de 1810.
Valeria Accomo
 
Comunidad de aprendizaje (equipo 1)
Comunidad de aprendizaje (equipo 1)Comunidad de aprendizaje (equipo 1)
Comunidad de aprendizaje (equipo 1)
cisneroscc
 
Sonja liebsch nives mestrovic lesungen muttertier @ rabenmutter märz 2012
Sonja liebsch nives mestrovic lesungen muttertier @ rabenmutter märz 2012Sonja liebsch nives mestrovic lesungen muttertier @ rabenmutter märz 2012
Sonja liebsch nives mestrovic lesungen muttertier @ rabenmutter märz 2012
nives mestrovic
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Gaëtan LAVENU
 
Der Veränderungscode
Der VeränderungscodeDer Veränderungscode
Der Veränderungscode
perfact training GmbH
 
Möglichkeiten und Grenzen der Vertrauensentwicklung in umstrittenen Risikotec...
Möglichkeiten und Grenzen der Vertrauensentwicklung in umstrittenen Risikotec...Möglichkeiten und Grenzen der Vertrauensentwicklung in umstrittenen Risikotec...
Möglichkeiten und Grenzen der Vertrauensentwicklung in umstrittenen Risikotec...
Oeko-Institut
 
Tilkee - Tutoriel pour le gestionnaire de contacts
Tilkee - Tutoriel pour le gestionnaire de contactsTilkee - Tutoriel pour le gestionnaire de contacts
Tilkee - Tutoriel pour le gestionnaire de contacts
Sylvain Tillon
 
Programa diplomado
Programa diplomadoPrograma diplomado
Programa diplomado
elrolliso
 
La Boîte à Images - Dossier de Presse
La Boîte à Images - Dossier de PresseLa Boîte à Images - Dossier de Presse
La Boîte à Images - Dossier de Presse
Christophe Delire
 
Ct aprender pogramacion
Ct aprender pogramacionCt aprender pogramacion
Ct aprender pogramacion
Estrellita Vargas Miranda
 
Camaras Webs
Camaras WebsCamaras Webs
Camaras Webs
guest4074f84
 
Multi-Media-Sharing-Plattformen Flickr&Slideshare
Multi-Media-Sharing-Plattformen Flickr&SlideshareMulti-Media-Sharing-Plattformen Flickr&Slideshare
Multi-Media-Sharing-Plattformen Flickr&Slideshare
VerenaYvonne
 

En vedette (20)

Aider les équipes à mieux répondre aux besoins d'affaires
Aider les équipes à mieux répondre aux besoins d'affairesAider les équipes à mieux répondre aux besoins d'affaires
Aider les équipes à mieux répondre aux besoins d'affaires
 
Cellcast de lacquisition client à la gestion du churn
Cellcast   de lacquisition client à la gestion du churnCellcast   de lacquisition client à la gestion du churn
Cellcast de lacquisition client à la gestion du churn
 
06 - Qu'est ce qu'un flux rss ?
06 - Qu'est ce qu'un flux rss ?06 - Qu'est ce qu'un flux rss ?
06 - Qu'est ce qu'un flux rss ?
 
Feuerwehr
FeuerwehrFeuerwehr
Feuerwehr
 
Presentation111
Presentation111Presentation111
Presentation111
 
Presentation des ressources numériques en SVT
Presentation des ressources numériques en SVTPresentation des ressources numériques en SVT
Presentation des ressources numériques en SVT
 
Veille sur Internet, les outils qui font gagner du temps
Veille sur Internet, les outils qui font gagner du tempsVeille sur Internet, les outils qui font gagner du temps
Veille sur Internet, les outils qui font gagner du temps
 
6.1.3. cr-audit-des-comptes
6.1.3. cr-audit-des-comptes6.1.3. cr-audit-des-comptes
6.1.3. cr-audit-des-comptes
 
25 de mayo de 1810.
25 de mayo de 1810.25 de mayo de 1810.
25 de mayo de 1810.
 
Comunidad de aprendizaje (equipo 1)
Comunidad de aprendizaje (equipo 1)Comunidad de aprendizaje (equipo 1)
Comunidad de aprendizaje (equipo 1)
 
Sonja liebsch nives mestrovic lesungen muttertier @ rabenmutter märz 2012
Sonja liebsch nives mestrovic lesungen muttertier @ rabenmutter märz 2012Sonja liebsch nives mestrovic lesungen muttertier @ rabenmutter märz 2012
Sonja liebsch nives mestrovic lesungen muttertier @ rabenmutter märz 2012
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
 
Der Veränderungscode
Der VeränderungscodeDer Veränderungscode
Der Veränderungscode
 
Möglichkeiten und Grenzen der Vertrauensentwicklung in umstrittenen Risikotec...
Möglichkeiten und Grenzen der Vertrauensentwicklung in umstrittenen Risikotec...Möglichkeiten und Grenzen der Vertrauensentwicklung in umstrittenen Risikotec...
Möglichkeiten und Grenzen der Vertrauensentwicklung in umstrittenen Risikotec...
 
Tilkee - Tutoriel pour le gestionnaire de contacts
Tilkee - Tutoriel pour le gestionnaire de contactsTilkee - Tutoriel pour le gestionnaire de contacts
Tilkee - Tutoriel pour le gestionnaire de contacts
 
Programa diplomado
Programa diplomadoPrograma diplomado
Programa diplomado
 
La Boîte à Images - Dossier de Presse
La Boîte à Images - Dossier de PresseLa Boîte à Images - Dossier de Presse
La Boîte à Images - Dossier de Presse
 
Ct aprender pogramacion
Ct aprender pogramacionCt aprender pogramacion
Ct aprender pogramacion
 
Camaras Webs
Camaras WebsCamaras Webs
Camaras Webs
 
Multi-Media-Sharing-Plattformen Flickr&Slideshare
Multi-Media-Sharing-Plattformen Flickr&SlideshareMulti-Media-Sharing-Plattformen Flickr&Slideshare
Multi-Media-Sharing-Plattformen Flickr&Slideshare
 

Similaire à Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013

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
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
Clé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-end
François Petitit
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
Paris Salesforce Developer Group
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013
Romain Linsolas
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
seydou4devops
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
badrfathallah2
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
CocoaHeads France
 
DevoxxFR 2013 - Arquillian
DevoxxFR 2013 - ArquillianDevoxxFR 2013 - Arquillian
DevoxxFR 2013 - Arquillian
Alexis Hassler
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
guest6e3bed
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
JS Bournival
 
Back to the future of java (from 8 to 11 and beyond)
Back to the future of java (from 8 to 11 and beyond)Back to the future of java (from 8 to 11 and beyond)
Back to the future of java (from 8 to 11 and beyond)
Jérôme Tamborini
 
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
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
Xavier NOPRE
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
Stéphane Traumat
 
MarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presqueMarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presque
Alexis Hassler
 
Dynamic Languages
Dynamic LanguagesDynamic Languages
Dynamic Languages
Tugdual Grall
 
Rouabhi algiers meetup
Rouabhi algiers meetupRouabhi algiers meetup
Rouabhi algiers meetup
Samir Rouabhi
 

Similaire à Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013 (20)

RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
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
 
Le framework-executor
Le framework-executorLe framework-executor
Le framework-executor
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
 
DevoxxFR 2013 - Arquillian
DevoxxFR 2013 - ArquillianDevoxxFR 2013 - Arquillian
DevoxxFR 2013 - Arquillian
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
Back to the future of java (from 8 to 11 and beyond)
Back to the future of java (from 8 to 11 and beyond)Back to the future of java (from 8 to 11 and beyond)
Back to the future of java (from 8 to 11 and beyond)
 
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
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
MarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presqueMarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presque
 
Gradle_ToursJUG
Gradle_ToursJUGGradle_ToursJUG
Gradle_ToursJUG
 
Dynamic Languages
Dynamic LanguagesDynamic Languages
Dynamic Languages
 
Rouabhi algiers meetup
Rouabhi algiers meetupRouabhi algiers meetup
Rouabhi algiers meetup
 

Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013

  • 1. Tests unitaires JavaScript Xavier NOPRE – 14/05/2013 GRENOBLE
  • 3. Jasmine : C'est quoi ?  Un framework de tests unitaires pour JavaScript   fournit un cadre pour écrire les tests unitaires  Indépendant d'autres librairies  Ne nécessitant pas de DOM
  • 4. Mise en route ?  Le site et la doc : http://pivotal.github.io/jasmine/  Télécharger le ZIP et dézipper :  https://github.com/downloads/pivotal/jasmine/jasmine- standalone-1.3.1.zip  Afficher SpecRunner.html dans le navigateur  Editer :  Les tests dans le répertoire spec  Le code dans le répertoire src  Et pour mes tests ?
  • 5. Jouer mes tests ?  Editer SpecRunner.html :
  • 6. Et ça ressemble à quoi ? 1/2  Suite de tests : describe("Ma suite de tests : ", function() { ... });  Suite dans des suites : describe("Ma suite de tests : ", function() { ... describe("Suite dans la suite: ", function() { ... }); });
  • 7. Et ça ressemble à quoi ? 2/2  Code avant chaque test "before" : beforeEach(function() { ... });  Test : it("should display initial message", function() { expect(xxx).toEqual(yyy); });  Etc …
  • 9. Et tester le DOM ? Extension jasmine-jquery :  https://github.com/velesin/jasmine-jquery  Ajoute des assertions spécifiques :  toBe(selector), toBeHidden, toHaveCss, toHaveAttr, toBeFocused, …  Ajoute une API de chargement de fixtures HTML, CSS, JSON  Usage :  Ajouter jasmine-jquery.js au test runner
  • 10. Et tester mes requêtes Ajax ? Extension jasmine-ajax :  https://github.com/pivotal/jasmine-ajax  Compatible avec jQuery  Permet de "mocker" les requêtes jQuery.ajax pour :  Vérifier ces requêtes et leurs paramètres  Simuler leurs succès, échecs, et données renvoyées  Usage :  Ajouter jasmine-ajax.js au test runner
  • 11. Et actuellement, t'en es où ? (REX)  Jasmine (ou autre) : super !  Traitement de données, formatages, … : OK !  Tests sur le DOM : ….  Investissement important  Très proche du rendu (trop ? …)  Mais bien pratique !  Exemples
  • 12.  Xavier NOPRE :  Développeur logiciel passionné (Java &Web)  Pratique et partage l’agilité depuis 2007  Indépendant. Missions :  Développements sur mesure et accompagnement de projet  En mode agile  Coaching en agilité, Scrum, et ingénierie agile MERCI @xnopre xnopre.blogspot.com
  • 13. Annexes Retrouvez ici quelques captures des écrans présentés lors de la session
  • 14. Page de test Jasmine après unzip
  • 15. Fichier : MesTests.js describe("Ma suite de tests : ", function() { var message; beforeEach(function() { message = "Hello HumanTalks"; }); it("should display initial message", function() { expect(message).toEqual("Hello HumanTalks"); }); describe("Une 'sous' suite de tests : ", function() { it("should add Grenoble", function() { message = htgre.expandForHTGrenoble(message); expect(message).toEqual("Hello HumanTalks Grenoble"); }); }); });
  • 16. Fichier : MonCode.js (function(){ window.htgre = { expandForHTGrenoble: function(message) { return message + " Grenoble"; } }; })();
  • 17. Page de test Jasmine avec mes tests démo