Wir machen unseren Tests Beine

March 30, 2007 on 8:37 pm | von thilo | 1 Kommentar

Da unsere vielen Tests mittlerweile ein wenig lange brauchen, haben wir uns am heutigen Forschungstag mal wieder mit dem Problem Testing auseinandergesetzt. Das Ergebniss diesmal schon vorne weg: unsere erfolgreichste Entdeckung ist Mocha.
Mit diesem Framework lassen sich Stubs und Mocks mit realen Objekten verwenden. Es folgt ein kleiner Auszug aus unserem bisherigen Testcode.

Dauer: 795ms

Nach kurzem Studium des Mocha Cheat Sheets haben wir dann den Test wie folgt geändert.

Dauer: 49ms

Na wenn das keine signifikate Verbesserung ist. Auf Mocha gestoßen sind wir über den Testing Rails Blog, auf dem leider nichts Neues mehr zu passieren scheint. Eine kleine Übersicht von Stub-Frameworks mit problemspezifischen Einschätzungen fanden wir auf dem Blog von Jay Fields.

Wir werden Mocha in der nächsten Zeit in unseren Test integrieren, und bei der 2000ten Revision sagen wir euch wie lange unsere Test Suite läuft.

post to del.icio.us Diese Seite zu Mister Wong hinzufügen

Forschungsergebnisse: Besser testen

March 11, 2007 on 9:43 pm | von thilo | keine Kommentare

from flickr by frogmuseum2Da wir uns diese Woche etwas um die Laufzeit unsere Tests gekümmert haben, war das Thema unseres letzten Forschungstages “besser testen in Ruby on Rails”. Da Testen bereits Thema bei Peepcode war, war der Screencast Pflicht. Der brachte leider kaum neues. Doch ganz zum Schluss wurden dann doch noch zwei praktische Tools vorgestellt. Mit TestTimer (gem install test_timer) läst sich die Laufzeit aller einzelnen Test messen. So lassen sich echte Langläufer ausmachen. Ein weiteres sehr praktisches Tool ist FakeWeb. Damit lässt sich Http-Kommunikation simulieren - perfekt, um die Testumgebung von externen Seiten zu entkoppeln ohne den Produktionscode zu ändern. Hier mal ein Beispiel aus der Dokumentation.

def test_request
FakeWeb.register_uri(’http://example.com/test_me’, :string => “Hello World!”)
content = Net::HTTP.get(URI.parse(’http://example.com/test_me’))
assert_equal “Hello World!”, content
end

Bei unserer Rechereche im Netz stießen wir zu guter Letzt noch auf einen kleiner Helfer, der automatisch jede Seite auf gültiges HTML prüft, jedem Link folgt, jeden Ajax Link aufruft und Formulare mit zufälligemn Daten füttert. So lassen sich Routing-Fehler, fehlende Seiten und falsche Formulare leichter aufspüren. Dieses Plugin hat den passenden Namen SpiderTest. Auch hier ist die Verwendung kinderleicht.

def test_spider
get ‘/’
assert_response :success

spider(@response.body, ‘/’)
end

SpiderTest befindet sich noch in der Entwicklung.

So das waren unsere Ergebnisse mal kurz zusammengefasst. Über hilfreichreiche Tipps und Kritik freuen wir uns, genauso wie über jeden netten Kommentar :)

post to del.icio.us Diese Seite zu Mister Wong hinzufügen

Tag der Forschung.

February 24, 2007 on 2:50 am | von Alexander Lang | 2 Kommentare
nerd

Eine der Faszinationen der Informatik fuer micht ist, dass es eigentlich jeden Tag etwas neues zu entdecken, zu lernen und auszuprobierne gibt. Sei es eine neue Technologie, eine bisher unbekannte Art, etwas zu benutzen oder eine neue “best practice“, die einen dem unerreichbaren schwarzen Guertel naeher bringt. Dummerweise (?) folgert daraus aber fuer alle Fachbeteiligten ein gewisser Zwang, sich moeglichst vielen dieser Neuerungen wenigsten kurz zu widmen, will man vor der Konkurrenz spielen und auch da bleiben. Nur woher die Zeit nehmen? Nach acht Stunden vor dem Bildschirm sitzt die Motivation fuer weiteres Bildschirmgeflimmer oder papierne Fachlektuere im untersten Kellergeschoss. Wochenende? Nee.

Deshalb: ab sofort gibt es jeden Freitag Nachmittag den upstream Forschungs(halb-)tag. Freitag ab 14 Uhr ist - ausser in Notfaellen (es musste einen Haken geben) - das regulaere Arbeiten an Projekten untersagt. Stattdessen werden Buecher gewaelzt, Screencasts rezipiert oder das Netz durchforstet. Oder gebloggt. Ganz im Namen der Weiterbildung, der Forschung und des freien Experimentierens. Oder Austausch mit anderen, sollte sich das mal ergeben. Zur Unterstuetzung einer forschigen Atmosphaere werden wir des oefteren einen Ortswechsel anstreben. Mal sehen, wie das so funktioniert. Erfahrungsberichte dann an dieser Stelle.

post to del.icio.us Diese Seite zu Mister Wong hinzufügen

  • RSS keiala

  • RSS open source projects: commits

  • Tags

  • Archives

  • Meta


  • Powered by WordPress with Pool theme design by Borja Fernandez.
    Entries and comments feeds. Valid XHTML and CSS. ^Top^