Freitag, 27. Dezember 2013

AppFuse - Security

Im letzten Post wurde bereits eine kleine Projektverwaltung begonnen. Nach dem erfolgreichen Auflisten von Projekten fehlt jetzt noch das Anlegen, Bearbeiten und Löschen. Darüber hinaus soll die Sicherheit einer AppFuse-Anwendung untersucht werden. Wer darf welche Seiten sehen und wie schlägt sich Appfuse bei den "OWASP Top 10 2013 vulnerabilities".

Montag, 16. Dezember 2013

AppFuse - extend with eclipse

Nachdem in den letzten beiden Posts gezeigt wurde, was alles in AppFuse steckt und womit das realisiert wurde, geht es in diesem Post um die Erweiterbarkeit von AppFuse. Dazu soll ein neuer Menüpunkt zum Verwalten von Projekten geschaffen werden. Die Erweiterung wird mit Hilfe von Eclipse umgesetzt, weshalb zuerst ein entsprechender Import erfolgen muss.

Sonntag, 8. Dezember 2013

AppFuse - what's inside

Im vorigen Post wurde die AppFuse-MultiMode-WebApp aufgesetzt und gestartet. Hier soll es darum gehen, wie diese Anwendung im Detail aussieht und welche Möglichkeiten out-of-the-box geboten werden. Am Ende des Artikels schaue ich mir auch noch an, wie und womit AppFuse umgesetzt wurde. Im nächsten Post folgt dann eine eigene Erweiterung der Applikation.

Donnerstag, 28. November 2013

AppFuse: setup and first start

Neulich bin ich auf der Suche nach einem Single-Page-(Web-)Application-Framework auf die empfehlenswerten Präsentationen von Matt Raible gestoßen. Dabei entdeckte ich, dass er der Gründer von AppFuse ist. AppFuse stellt sich mir als eine Art Template-Mechanismus zum schnellen Aufsetzen eines kompletten Applikationsstacks dar. Und da gerade ein neues Projekt ansteht, wollte ich mal schauen, ob das alles tatsächlich so einfach geht wie versprochen.

Donnerstag, 21. November 2013

Mock Object by Example

Bisher wurde gezeigt, wie nicht relevante Abhängigkeiten mittels Dummies eliminiert, spezielle Testvorraussetzungen mittels Stubs geschaffen und indirektes Verhalten mittels Spies geprüft werden kann. Allen diesen Test Doubles gemein ist, dass zusätzlicher Implementierungsaufwand notwendig ist. Oftmals müssen erst neue Interfaces geschaffen und davon spezielle Implementierungen abgeleitet werden.

Mock-Objekte hingegen werden durch ein Mock-Framework erzeugt. Vorhandene Klassen werden ohne eigenen Implementierungsaufwand durch Mock-Objekte ersetzt. Es muss noch nicht einmal ein zusätzliches Interface geschaffen werden, weil das Mocking auch auf Klassen funktioniert. Lediglich das JAR des gewählten Mock-Frameworks muss in den CLASSPATH eingebunden werden. Weiterhin erlauben Mock-Objekte von Hause aus eine Verhaltensverifikation wie bei Test Spies.

Donnerstag, 14. November 2013

Test Spy by Example

Test Spies nehmen eine gewisse Sonderrolle bei den Test Doubles ein, weil sie die Tests weder vereinfachen noch spezielle Voraussetzungen schaffen. Ihr Zweck ist es, Verhalten zu testen. Alle bisherigen Tests haben ausschließlich den Zustand nach der Berechnung überprüft, also ob die Rechnungssumme stimmt. Mit einem Test Spy kann indirekt überprüft werden, ob eine Methode wie erwartet aufgerufen wurde (und ggf. wie oft). Ein Beispiel hierfür wäre z.B. die Überprüfung des automatischen Versands einer eMail nach einer Nutzerregistrierung.

Mittwoch, 6. November 2013

Test Stub by Example

Im Gegensatz zu Dummy-Objekten, bei denen nicht relevante Abhängigkeiten eliminiert werden, sollen mittels Test Stubs spezielle Testvoraussetzungen geschaffen werden. Dafür wird unser Beispiel um die Anforderung erweitert, dass zur Happy Hour alles nur die Hälfte kosten soll.