BASTA 2013: JavaScript Unit Testing

BASTA 2013: JavaScript Unit Testing

My slides for the BASTA 2013 talk about JavaScript Unit Testing.

Ebeb5d8fd081058ba8df73d378bf83d7?s=128

Sebastian P.R. Gingter

September 25, 2013
Tweet

Transcript

  1. Sebastian P.R. Gingter | Smarthouse Media GmbH Mehrwert in Action:

    JavaScript Unit Testing
  2. Vorab: •  Sourcen und Demos @github –  https://github.com/gingters/BASTA2013_JSUnitTesting •  Slides

    @speackerdeck –  https://speakerdeck.com/phoenixhawk
  3. JavaScript Unit Testing Mehrwert in Action: Sebastian P.R. Gingter @PhoenixHawk

    #bastacon
  4. Agenda I •  Einleitung •  Demo I – Wie man ‚legacy‘

    code testet •  Verfügbare Tools – Test frameworks & test runners
  5. Agenda II •  Die Toolchain für unsere Session – Und warum

    sie gewählt wurden •  Demo II – Was geht und wie gehts? •  The End J – Fragen & Antworten
  6. Einleitung •  Testing ist gut –  Oder: Warum sitzt ihr

    in dieser Session? •  Jeder kann test-driven entwickeln –  Aber das soll uns jetzt & hier nicht kümmern –  Wir sorgen uns eher um existierenden Code „[...], we can obviously say that starting with unit testing is much easier when starting something from scratch.“ Jörn Zaefferer, QUnit
  7. Einleitung •  Probleme beim JS-Testing – JavaScript & Units ? – Inline

    Event Handlers – jQuery – DOM
  8. Testing (legacy) code & DOM Demo I

  9. Verfügbare Tools •  Test frameworks –  QUnit (jQuery) –  Mocha

    –  Jasmine –  JsUnit –  RhinoUnit –  Sinon –  JsSpec –  Jspec –  Screw.Unit –  ...
  10. Verfügbare Tools •  Test runners – Karma (früher Testacular) – Buster.js – TestSwarm

    – JsTestDriver – YUI Yeti – ... •  Grobe Übersicht: http://stackoverflow.com/questions/300855/javascript-unit-test-tools-for-tdd
  11. Verfügbare Tools •  Browser – Alle relevanten J – PhantomJS

  12. Unsere Toolchain •  Jasmine •  Karma

  13. Warum? •  Verbreitung •  Community •  Karma kommt von Google

  14. Woher? •  Node.js - http://nodejs.org/ •  QUnit.js - http://qunitjs.com/ • 

    Jasmine - http://pivotal.github.io/jasmine/ •  Karma - http://karma-runner.github.io/ •  PhantomJS - http://phantomjs.org/
  15. Node, Karma & Jasmine •  Node.js installieren •  npm install

    -g karma •  Optional: npm install -g jasmine-node
  16. CI Integration (am Beispiel von TeamCity) •  http://blog.danmerino.com/continuos- integration-ci-for-javascript-jasmine- and-teamcity/

    •  https://github.com/larrymyers/jasmine- reporters
  17. Was geht? Wie geht’s? Demo II

  18. Q & A?

  19. Last but not least: •  Twitter: @PhoenixHawk Hashtag: #bastacon • 

    Blog: gingter.org •  E-Mail: sebastian@gingter.org
  20. VIELEN DANK! Mehrwert in Action: JavaScript Unit Testing