smart | Webentwicklung
Alles rund um HTML5, PHP, WordPress & Co.

Kategorie: TDD & BDD

PHPUnit: Dateisystem mocken mit vfsStream

3. September 2013
Stephan
PHPUnit: Dateisystem mithilfe von vfsStream mocken

Beim Unit-Testing möchte man gerne die zu testenden Units, wie z.B. einzelne Klassen isoliert vom Gesamtsystem und somit ohne äußere Einflüsse bzw. Abhängigkeiten testen. Dazu lassen sich Pseudo-Objekte, sogenannte Mocks, erstellen und verwenden.

Testet ihr z.B. eine Klasse A, die abhängig von Klasse B ist, so könnt ihr Klasse B mocken, damit Klasse A unabhängig von Klasse B getestet werden kann.

Das Mocken von Klassen bzw. konkreten Objekten unterstützt PHPUnit bereits „out of the box“. Schwieriger hingegen ist das Mocken des Dateisystems. Hierfür gibt es aber mit vfsStream eine einfache Lösung. Dabei handelt es sich um einen Stream-Wrapper, welcher Zugriff auf ein virtuelles Dateisystem ermöglicht und innerhalb von PHPUnit-Tests als Mock für das reale Dateisystem genutzt werden kann.

In diesem Artikel zeige ich euch an einem einfachen Beispiel, wie ihr vfsStream in euren PHPUnit-Tests einsetzen könnt.

Weiterlesen

Kategorie: PHP, TDD & BDD

Ruby on Rails & RSpec: JSON-Response testen

28. Juni 2012
Stephan
Ruby on Rails: JSON-Response mit RSpec testen

Zurzeit arbeite ich gerade an einer Ruby on Rails Applikation, bei welcher ich auf der Clientseite das JavaScript-Framework backbone.js einsetze.

Dabei ist es so, dass ich per backbone.js hauptsächlich asynchrone Anfragen (AJAX-Requests) an den Server sende. Die zu übertragenden Daten werden dabei im JSON-Format übermittelt. Analog dazu antwortet der Server auf die jeweiligen Anfragen natürlich auch mit einer asynchronen JSON-Antwort (AJAX-Response).

Im 7. Teil des Tutorials „Todo-App mit backbone.js & CoffeeScript erstellen“ findet ihr das eben erwähnte noch einmal ausführlich erklärt.

In diesem Artikel möchte ich euch zeigen, wie ihr die im Rails-Controller definierten Antworten mittels RSpec testen könnt.

Weiterlesen

TDD/BDD in JavaScript mit dem BDD-Framework Jasmine

10. April 2012
Stephan
BDD-Framework Jasmine

Jasmine ist ein Unit-Testing Framework bzw. genauer gesagt ein Framework für Behavior-Driven Development (BDD), dass dazu dient JavaScript-Code zu testen.

Dabei ist Jasmine an das bekannte Ruby BDD-Framework RSpec angelehnt und leicht zu erlernen. Analog zu RSpec, werden auch mit Jasmine sogenannte Specs (in TDD sind es Tests) geschrieben, um das zu erwartende Verhalten des eigentlichen Codes zu testen.

In diesem Artikel möchte ich euch eine kurze Einführung in das BDD-Framework Jasmine geben.

Weiterlesen