Nach längerer Zeit mal wieder ein Eintrag zu PHPUnit in meiner losen Reihe zum Thema. Diesmal mit einem Beitrag, wie man mit den verbreiteten Unittests auf Ausnahmen testet.
Will man bei einem Unittest auf eine ausgelöste Exception testen, war man bisher gezwungen seine Testklasse von PHPUnit_Extension_ExceptionTest abzuleiten. Mit der Version 3.2.0 wurde diese Funktionalität in die Standardklasse gemerged, also in PHPUnit_Framework_TestCase. Fortan ist es möglich mit seinen normalen Testklassen auch auf Exceptions zu testen.
Weiterhin ist es möglich nicht nur auf eine Exception allgemein zu testen sondern auf eine präzise Nachricht, die von der Ausnahme ausgegeben wird. Dieses Feature ist besonders da sinnvoll, wo viele Ausnahmetypen von einer Ausnahmeklasse abgeleitet werden, etwa bei Frameworks.
In Code bedeutet dies beispielsweise:
<?php
class Test extends PHPUnit_Framework_TestCase {
public function testTest() {
$this->setExpectedException('Exception', 'Ausnahme wurde geworfen');
throw new Exception('Ausnahme wurde geworfen');
}
}
?>
Heute haben zwei Übernahmen in der IT-Industrie stattgefunden, die bemerkenswert sind und für die Technologien, die ich täglich einsetze Auswirkungen haben werden.
Zum einen hat Oracle in einem zweiten Anlauf Bea übernommen. Bea als Anbieter erstklassiger Java-Middleware soll Oracle bei dessen Middleware unterstützen. An dieser Übernahme wird wieder einmal deutlich welche gewichtige Rolle Java im Enterprise-Bereich spielt, völlig unberührt der ganzen Abgesänge, die periodisch wiederkehren. Interessant wird es auch, was aus Beas eigener JavaVirtual Machine namens JRockit wird.
Auch bei der zweiten Übernahme spielt Oracle eine Rolle, wenn auch die des Verlierers. Vergangenes Jahr bemühte sich Oracle um den Erwerb von MySQL AB, der Firma hinter der populären OpenSource-Datenbank. Oracle scheiterte damals, heute hat Sun die Firma übernommen. Suns CEO Jonathan Schwartz sprach von der wichtigsten Akquisition von Sun aller Zeiten. Welche wichtige Rolle genau MySQL in Zukunft spielen wird, ist noch offen, aber drei Sachen lassen sich positiv festhalten. MySQL wird durch einen Global Player als Eigner, der Support bietet, sicherlich im Enterprise-Segment mehr Zuspruch erfahren. Und Sun kann mit OpenSolaris, Java, Glasfish und jetzt MySQL einen kompletten OpenSource Stack für Webanwendungen vorweisen. Durch das Commitment Suns zu OpenSource, dürfte die Entwicklung von MySQL durch die Übernahme profitieren.
In einem Interview-Beitrag im Sun Developer Network, gibt Richard Gabriel Einblick in sein Verständnis von Porgrammierung. Da sein Ansatz nicht weit entfernt ist von dem Claim dieses Blogs: “Code is Lyric”, will ich auf diesen sehr lesenswerten Artikel unbedingt aufmerksam machen.
Gabriel sieht die Programmierung und das Gedichteschreiben als einen verwandten, kreativen Prozess an. Statt Software-Entwicklung immer nur auf die ingenieursmäßige Kompontente zu reduzieren, sieht er hier eine kreative Tätigkeit, die einem künstlerischen Akt analog ist.
Der Claim dieses Blogs meint, dass Programmierung eine kreative Kulturleistung, wie etwa das Verfertigen von Lyrik oder das Malen eines Gemäldes ist.
Weitere Informationen und Texte zu diesem unterstützenswerten Ansatz findet sich auf der Website von Richard Gabriel.