
    Download zum Grails Artikel in der iX Ausgabe Mai 2008
    
Voraussetzungen
---------------
- JDK 1.5
- Grails 1.0 (getested mit Grails 1.0.2)
- Groovy 1.5 (optional)

Verifikation
------------
- Setzen Sie die Umgebungsvariablen
  JDK_HOME, GRAILS_HOME, und GROOVY_HOME
  
- ffnen Sie ein terminal fr das Verzeichnis
  in dem diese Datei (readme.txt) liegt und tippen sie
 
> grails version

  Dann sollten sie ungefhr folgendes sehen:

Welcome to Grails 1.0.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: <download_dir>\grails-1.0.2

Base Directory: C:\temp\ix
Script Version not found.
Run 'grails help' for a complete list of available scripts.

- Starten der Applikation:
  ffnen Sie ein zweites terminal mit den gleichen 
  Einstellungen und starten Sie die Applikation, 
  unter Windows geht beides auf einmal mit
  
> start grails run-app

  [Sie knnen nun zu localhost:8080 browsen und mit der
  Applikation spielen.]
   
- Starten der REST unit tests:
  Lassen Sie die Applikation weiter laufen, wechseln Sie
  in das erste terminal und tippen Sie
  
> grails test-app  

  Sie sollten nun unter anderem diesen output sehen:
-------------------------------------------------------
Running 9 Unit Tests...
Running test RestClientAsTest...
                    testInitialGetOfFirstEntryFromBootStrap...SUCCESS
                    testInitialListFromBootStrap...SUCCESS
                    testInsertANewEntryGetItAndDeleteIt...SUCCESS
                    testPutMethod...SUCCESS
                    testSaveException...SUCCESS
                    testSaveError...SUCCESS
                    testPutException...SUCCESS
                    testPutError...SUCCESS
                    testDeleteException...SUCCESS
Unit Tests Completed in 1359ms ...
-------------------------------------------------------

- Starten der WebTests:
  Beenden Sie im terminal 2 den Server-Prozess mit Crtl-C.
  Starten Sie die WebTests im terminal 1 mit
  
> grails run-webtest

  Sie sehen eine Fortschrittsanzeige im "WebTest-Monitor".
  Am Ende der Tests ffnet sich die Resultatseite im 
  Standard-browser.
  
  Wenn Sie jetzt nur noch "grn" sehen, funktioniert alles
  wie vorgesehen.
  
Alternativen
------------     
- Sie knnen die REST Tests auch aus einer IDE starten.
  Einfach die Klasse RestClientAsTest.groovy im Verzeichnis
  test/unit auswhlen.
- Das geht auch von der Kommandozeile aus, falls Sie Groovy
  installiert haben
> cd test
> cd unit
> groovy RestClientAsTest

Known issues
------------
- In der aktuellen Version des WebTest plugins beendet sich der
  Monitor nicht von alleine. Ctrl-C benutzen.
- Mehrfache Ausfhrung von "grails test-app" kann zu Problemen
  mit dem Caching fhren. Diese Effekt tritt bei den "Alternativen"
  nicht auf.
  
Bemerkungen und Unterschiede zum Artikeltext
--------------------------------------------
- Das URL Mapping wird wie beschrieben verwendet, aber die 
  Content-Negotiation nur beispielhaft am GET Request (show).
  Das ist Geschmackssache, aber ich finde es so einfacher.
- Einen kleinen caveat gibt es beim Weiterleiten auf den 
  view fr den HTML Kanal. Man kann kein redirect verwenden, weil
  das ja wieder auf die "show" Aktion fhren msste, also
  eine Endlosschleife ergbe. Ein render auf den "show" resp.
  "list" view bedingt allerdings, dass das entsprechende GSP
  auch vorhanden ist. Dafr wurde das statisch scaffolding
  eingesetzt. 
- Das Beispiel deckt nicht nur GET, sondern auch PUT, POST
  und DELETE ab.
- Alle REST Methoden werden funktional getestet, inklusive
  Fehlerreporting zum Client.
- Man htte die funktionalen Tests auch direkt in WebTest 
  schreiben knnen, aber so kann man in der Klasse
  RestClientAsTest schn sehen, wie man mit Groovy und ohne
  sonstige Abhngigkeiten einen REST client bauen kann.  
  
Viel Spass damit
Dierk Knig