Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tests carto avec Mocha
Search
Makina Corpus
November 23, 2013
Technology
0
790
Tests carto avec Mocha
Quelques notes sur le test d'applications cartographiques avec Leaflet et Mocha
Makina Corpus
November 23, 2013
Tweet
Share
More Decks by Makina Corpus
See All by Makina Corpus
Publier vos données sur le Web - Forum TIC de l'ATEN 2014
makinacorpus
0
660
Créez votre propre fond de plan à partir de données OSM en utilisant TileMill
makinacorpus
0
98
Team up Django and Web mapping - DjangoCon Europe 2014
makinacorpus
3
800
Petit déjeuner "Les bases de la cartographie sur le Web"
makinacorpus
0
400
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir de rien" le 11 février - Toulouse
makinacorpus
0
260
CoDe, le programme de développement d'applications mobiles de Makina Corpus
makinacorpus
0
79
Petit déjeuner "Alternatives libres à GoogleMaps" du 11 février 2014 - Nantes - Sylvain Beorchia
makinacorpus
0
640
Petit déjeuner "Les nouveautés de la cartographie en ligne" du 12 décembre
makinacorpus
1
360
Alternatives libres à Google Maps
makinacorpus
2
3k
Other Decks in Technology
See All in Technology
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
5
430
ここが嬉しいABAC ここが辛いよABAC #再解説+補足編
masahirokawahara
1
270
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
本当のAWS基礎
toru_kubota
0
500
API Gatewayと少し仲良くなってみた!
masuchoku
0
100
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
150
複雑な構成要素を持つUIとの向き合い方 〜新・支出グラフでの実例〜 / B43 TECH TALK
nakamuuu
0
140
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
130
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
160
SPI原点回帰論:事業課題とFour Keysの結節点を見出す実践的ソフトウェアプロセス改善 / DevOpsDays Tokyo 2024
visional_engineering_and_design
4
1.9k
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
2
830
Databricks における 『MLOps』
databricksjapan
2
170
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Fantastic passwords and where to find them - at NoRuKo
philnash
37
2.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Git: the NoSQL Database
bkeepers
PRO
422
63k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
A better future with KSS
kneath
231
16k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
120
39k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Code Review Best Practice
trishagee
55
15k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Design by the Numbers
sachag
274
18k
Designing the Hi-DPI Web
ddemaree
276
33k
Transcript
Tests carto avec Mocha (notes) Mathieu Leplatre @leplatrem www.makina-corpus.com
Mécanique cartographique... • →JS + DOM • <img> (Fonds de
carte) • Lat/Long pixels → (SVG, CSS) • Événements (interactions)
Mocha + PhantomJS • Browser + Command-line (headless) • Intégration
Continue (exit codes) • TDD (watch / inotify) • jsdom... $ mocha-phantomjs test/index.html <script> (window.mochaPhantomJS || window.mocha).run(); </script>
À peu près pas loin ? • 10e-9 degré ~
1mm • assert.closeTo() (Chai) ✖ 1 of 46 tests failed: 1) Locate click on line: 4: expected 0.5 to equal 0.5000000000000001 at file:///home/user/app/node_modules/chai/chai.js:401 render events
Déclencher des vrais événements • Clic | Clavier | Scroll
| Touch • createEvent API (jQuery) • happen (http://macwright.org/happen/) it('zooms-in with double click', function(done) { map.on('zoomend', function () { assert.equal(map.getZoom(), 1); done(); }); happen.dblclick(map._container); })
Contrôle du temps, Doc ! • Sinon.JS (spy + stub
+ mock + sandbox) var clock = sinon.useFakeTimers(), callback = sinon.spy(); map.on('debounced', callback); map.fire('mousemove', {latlng: [0, 0]}); clock.tick(500); map.fire('mousemove', {latlng: [0, 0]}); map.fire('mousemove', {latlng: [0, 0]}); assert.equal(2, callback.callCount);
Conclusion • Unitaires ! • « Tout est difficile avant
d'être simple. » – Thomas Fuller
Merci FranceJS & Makina Corpus ! Outils • http://leafletjs.com •
http://visionmedia.github.io/mocha/ • https://github.com/metaskills/mocha-phantomjs • http://macwright.org/happen/ • http://chaijs.com/ • http://sinonjs.org/ • https://github.com/tmpvar/jsdom Lectures • http://blog.mathieu-leplatre.info/test-your-leaflet-applications-with-mocha.html • https://nicolas.perriault.net/code/2013/testing-frontend-javascript-code-using-mocha-chai-and-sinon/