21. August 2007, 10:33, by Maarten Manders

Dependency Injection for Unit Tests in PHP

Writing testable code is tricky. On reason is because you have to test all of your software components individually and isolated from each other. Imagine that you’re testing your new and cool DB abstraction layer. It’s using:

  • Some sort of error log
  • A config component to fetch DB credentials
  • Your caching layer to temporarely save stuff
  • I almost forgot: It’s using PDO

Loose Coupling

Having everything tied up like this, you’re going to have a hard time testing it. After all, you don’t want to test the connected components, just your new and cool query class. That’s where Dependency Injection kicks in – along with some other patterns with cool names. The goal is to break your piece of software down to a bunch loosely coupled components and tie them together dynamically. As soon as your software is getting the Lego look and feel, you know that you’re on the right track. This is where you can use Dependency Injection for the logging component:

// Instantiating the components
$loggingComponent = new Fancy_Error_Log();
$fancyQuery = new Fancy_Db_Query();

// Tell your query what to use for logging
$fancyQuery->setLogger($loggingComponent);

Does it feel Lego already? Then go on and do the same with the other 3 dependencies.
(more…)

Filed under: PHP,Programming,Web Development
9. August 2007, 17:38, by Leo Büttiker

webtuesday@tilllate.com

Wir freuen uns am nächsten Dienstag dem 14. August den Webtuesday erneut in unseren Räumlichkeiten durchzuführen. Ich und Mirko, vom Institut für Software, werden einen kurzen Talk zum Thema Refactoring halten.

Die Hochschule Rapperswil beschäftigt sich in ihrer aktuellen Forschung mit dem Thema Refactoring und Automatisierungsmöglichkeiten beim Code schreiben. Sowohl Mirko als auch ich haben zu diesem Thema unsere Diplomarbeiten geschrieben. Mit unserem Talk möchten wir die aktuellen Möglichkeiten zum Schreiben von besserem Code und Refactorn aufzeigen. Es wird für alle Programmierer was dabei sein, wir werden mit den Grundlagen von Refactoring (und gutem Code) anfangen und gegen Ende zu dem etwas esoterischeren Teil, des schreiben von automatischen Refactorings, gelangen.

Der Weg nach Shilau wird sich auf jeden Fall lohnen. Für Verpflegung und Getränke während des Talks wird Silvan (Chef!) sorgen. Ein kurzes Einschreiben im Webtuesday-Wiki ist empfohlen, damit auch genug Bier für alle da ist. (Ansonsten verpflichtet man sich damit zu gar nichts, bei Webtuesday gibt’s keine Mitgliedschaft, versteckte Gebühren oder Unterschriften zum Verkauf der eigenen Seele.)

Anschliessend werden wir bei einem Bier im nahe gelegen Nelson Pub noch Gelegenheit haben über diverse On- und Off-Topic-Themen zu schwatzen.

Filed under: Uncategorized —

© 2014 tilllate Schweiz AG - Powered by WordPress