JavaScript Tests mit Karma schnell an den Start bringen

Schon seit geraumer Zeit gibt es für fehlende Unit Tests in JavaScript keine Entschuldigung mehr. Erstens weil JavaScript mit Sicherheit keine “toy language”, sondern eine ernstzunehmende Programmiersprache ist. JavaScript steuert heutzutage client- und serverseitige  Applikationen, die ohne Wenn und Aber getestet werden müssen. Zweitens existieren auch für JavaScript bereits seit längerem Frameworks, die das Schreiben von Unit Tests vereinfachen und standardisieren. Zu nennen sind hier JSUnitYUI Test, QUnit, Mocha und Jasmine. Drittens und schließlich sind auch automatisierte Testläufe mit Runnern wie JSTestDriver, YUI YetiBusterJS und eben Karma ohne Probleme durchführbar. Der zuletzt genannte Test Runner Karma ist der neueste von allen. Seine Vorzüge werde ich im Folgenden darstellen.

Weiterlesen

FLOW3 – Ein neuer David unter den Goliaths?

In den letzten Jahren hatte sich das Zend Framework – unter den PHP Frameworks – schon nahezu etabliert. Der Branchenprimus gehört in den meisten Firmen die irgendetwas mit PHP zu tun haben wohl schon mehr oder minder zum Standard-Techset. Da macht sich auf einmal ein immer größer werdender Hype um die zweite Version des Symfony Frameworks bemerkbar. Die finale Version 2.0 wurde nach 12 Preview Releases, 5 Beta Versions und 6 Release Candidates am 28. Juli 2011 veröffentlicht. Die Fangemeinde wächst kontinuierlich.

Da kam am 20. Oktober des selben Jahres ein völliger Neuling ans Licht der Welt: FLOW3, ein mit Typo3 assoziiertes Framework. Und auch dieses bringt natürlich ein paar neue/alte Buzzwords mit. Doch was steckt dahinter?

Weiterlesen

21.12. Agile Developer Skills (ADS)

Last week I had the chance to attend an Agile Developer Skills Workshop in Berlin.

The 3 day workshop is, next to a Scrum Master or PO Certification, a prerequisite for the Certified Scrum Developer, short CSD.

I was very excited about the ADS workshop and I found it an intersting approach to hold a workshop which focusses on developers rather than on the management side of scrum. Especially as in my experience all the other scrum workshops mainly concentrate on the rituals, artefacts and organisation of Scrum, without giving answers on how to develop high quality software.

Weiterlesen

19.12. Test Driven JavaScript Development

A couple of weeks ago, I was attending a three-day workshop for agile developer skills. The workshop was split into five topics: Colaboration, Refactoring, Design & Architecture, Continious Integration and Test Driven Development. Especially the session about Test Driven Development was very interesting. Although I know the principles of TDD I was really impressed by the demonstration of solving a simple exercise (a coding kata) done in Java by the instructors of the workshop. It was not so much the coding in Java that was interesting for me, it was the combination of writing a test, executing the test with a shortcut from the IDE, see the test fail, write the implementation and re-start the test again within the IDE. You will say “that´s test driven development- it´s nothing new!” and you are right! But is there a way to do Test Driven Development in the same way for JavaScript? I mean writing a test, execute the tests with a shortcut from the IDE, see the test fail, implement the method and re-start the test? Yes, there is a way! So let me show you what I have done to do the same coding kata (called Fizzbuzz) with JavaScript.

Weiterlesen

16.12. Eine Einführung in Behavior Driven Development

Testdriven Development, also das Schreiben eines oder mehrerer Tests bevor der eigentliche Code entsteht, ist inzwischen ein alter Hut.
Ein großer Nachteil dieses Verfahrens ist, dass im agilen Umfeld die User Stories erst verstanden werden müssen.
Wenn die Story aber falsch verstanden wurde, dann wird auch der Test falsch implementiert.
Knackpunkt ist also immer noch der Abgrund zwischen Analyse und Verdeutlichung der Geschäftsprozesse sowie dem korrekten Erfassen und testen eben jener.
Eine Lösung hierfür soll Behavior Driven Development – kurz BDD – bieten.

Weiterlesen

03.12. Setting up an own QA Environment for Javascript

Nearly every PHP project comes up with a great set of tools to assure the quality of source code; unit tests are a no longer a „nice to have“ feature, they are common components in new projects. While unit tests help you to provide solid interfaces and proof the functionality of a certain method, there is a long list of tools that check the quality of the source code itself with many different metrics. Each of these mentioned tools reports its results into a XML file, which can easily be interpreted by a continuous integration server like Jenkins. The benefit is enormous: After every commit to your version control system your continuous integration server triggers the execution of the tests and the source code quality analysis and shows the result in meaningful diagrams. As a developer you get a direct feedback and you can make a prediction on the status of the entire project, because if even the smallest units work fine, there is a good chance that the whole system runs stable.
Weiterlesen