Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Einleitung
1 Einführung
2 Installation
3 Erste Schritte
4 Einführung in Ruby
5 Eine einfache Bookmarkverwaltung
6 Test-Driven Development
7 Rails-Projekte erstellen
8 Templatesystem mit ActionView
9 Steuerzentrale mit ActionController
10 Datenbankzugriff mit ActiveRecord
11 E-Mails verwalten mit ActionMailer
12 Nützliche Helfer mit ActiveSupport
13 Ajax on Rails
14 RESTful Rails und Webservices
15 Rails mit Plug-ins erweitern
16 Performancesteigerung
17 Sicherheit
18 Veröffentlichen einer Rails-Applikation auf einem Server
Ihre Meinung?

Spacer
 <<   zurück
Ruby on Rails 2 von Hussein Morsy, Tanja Otto
Das Entwickler-Handbuch
Buch: Ruby on Rails 2

Ruby on Rails 2
geb., mit DVD
699 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version jetzt bestellen
* versandkostenfrei in (D) und (A)
Pfeil 6 Test-Driven Development
  Pfeil 6.1 Was ist TDD?
  Pfeil 6.2 Vorstellung des Projekts
  Pfeil 6.3 Projekt erstellen und konfigurieren
  Pfeil 6.4 Unit-Tests
  Pfeil 6.5 Functional-Tests erstellen
  Pfeil 6.6 Autotest
  Pfeil 6.7 Referenz

6 Test-Driven Development

In diesem Kapitel zeigen wir am Beispiel eines Verwaltungssystems für Flüge, wie man eine testgesteuerte Applikation entwickelt.

In diesem Kapitel zeigen wir Ihnen, wie man eine Applikation mit der testgesteuerten (Test-Driven Development) Technik entwickeln kann. Hierbei wird nicht erst nach der Programmierung der Code getestet, sondern umgekehrt. Diese Programmiertechnik wird von immer mehr Entwicklern eingesetzt.


Rheinwerk Computing - Zum Seitenanfang

6.1 Was ist TDD?  topZur vorigen Überschrift

Eine Rails-Applikation besteht aus mehreren Teilen, die miteinander interagieren. Die Models, Controller und Views sind gemeinsam durch ihre Interaktion für die Darstellung der Inhalte verantwortlich. Wenn an einer Stelle, zum Beispiel im Model, etwas geändert wird, kann das Konsequenzen an anderen Stellen haben. Wird zum Beispiel ein Datenbankfeld umbenannt, muss in letzter Konsequenz auch der View entsprechend angepasst werden.

Das heißt, mit steigender Komplexität wird es immer schwieriger, die Ursachen für mögliche Fehler zu finden.

Und genau an diesem Punkt setzt Test-Driven Development (TDD) an. Es wird eine Annahme getroffen und entsprechender Testcode programmiert, der dann überprüft, ob der Code der Applikation auch der Annahme entspricht. Wir legen also im Testcode fest, was wir von dem Teil der Applikation, den wir gerade testen, erwarten.

Wenn zum Beispiel ein Preis ermittelt werden soll, erwarten wir unter bestimmten Bedingungen einen bestimmten Wert. Ob der ermittelte Wert dem erwarteten Wert entspricht, überprüfen wir mit dem Testcode.

Das Interessante dabei ist, dass der Testcode nicht am Ende eines Projektes entwickelt wird, sondern bevor man eine Zeile Code der eigentlichen Applikation entwickelt hat. Das heißt, wir beginnen mit dem Testcode, der uns dann vorgibt, was wir für unsere Applikation zu programmieren haben. Praktisch heißt das, wir treffen eine Annahme, programmieren den entsprechenden Testcode und führen diesen aus. Schlägt er fehl, korrigieren und/oder erweitern wir unseren Code der Applikation, bis der Testcode funktioniert.

Abbildung  TDD Prinzip

Wichtig bei dem TDD-Prinzip ist es, dass man nicht erst alle Test entwickelt und dann mit dem eigentlichen Programmieren loslegt, sondern wie folgt:

  1. Erstellung des Testcodes für die nächste Funktionalität
  2. Test ausführen
  3. Implementierung oder Verbessern der Funktionalität, bis Test erfolgreich ist

Rails unterscheidet zwischen drei Arten von Tests:

  • Unit-Test:
    Hiemit werden hauptsächlich Models getestet.
  • Functional-Tests:
    Setzt den Fokus auf das Testen von Controllern und Views.
  • Integration-Tests:
    Dient zum Testen der Gesamtfunktionalität der Rails-Applikation.

Für jeden Test-Typ gibt es ein eigenes Verzeichnis im Projekt.

Abbildung  Verzeichnis test

Das Verzeichnis »fixtures« ist für Testdaten bestimmt. Im Verzeichnis »mocks« werden sogenannte Mock-Objekte (Attrappen-Objekte) abgelegt. Mock-Objekte sind Objekte, die nur die Funktion eines echten Objekts imitieren, aber nicht die Original-Funktionalität bieten. Dies ist z. B. sinnvoll, wenn ein Objekt Online-Zugriffe macht, die für die Tests zu aufwendig wären.

TDD ist in Rails integriert, und es wird empfohlen, mit dieser Technik zu entwickeln. Um TDD besser zu verstehen, werden wir die Thematik anhand eines Projekts exemplarisch erklären.

Alternative mit RSpec
RSpec ist eine neue Alternative zu dem eingebauten TDD in Rails und erfreut sich immer größerer Beliebtheit unter den Entwicklern. RSpec basiert auf dem sogenannten Behaviour-Driven Development (siehe http://rspec.info).



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
  Zum Katalog
Zum Katalog: Ruby on Rails 2
Ruby on Rails 2
Jetzt bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Katalog: JavaScript






 JavaScript


Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de