Im Gegensatz zu den meisten, die sich bisher geäußert haben, glaube ich nicht, dass Tests der richtige Ort sind, um damit zu beginnen. Ich denke, sie sind zu eng gefasst, zu fokussiert. Das wäre so, als würde man versuchen, die Grundlagen der Physik/Mechanik zu verstehen, indem man sich zuerst mit den intramolekularen Kräften und der Quantenmechanik beschäftigt. Ich glaube auch, dass man sich zu sehr auf gut geschriebene Tests verlässt, und meiner Erfahrung nach schreiben viele Leute keine ausreichenden Tests oder schlechte Tests (die kein genaues Bild davon vermitteln, was der Code eigentlich tun sollte).
1) Ich denke, man muss zunächst einmal verstehen, was die App eigentlich macht. Benutzen Sie sie zumindest lange genug, um eine Vorstellung davon zu bekommen, was ihr Hauptzweck ist und was die verschiedenen Arten von Daten sein könnten und welche Aktionen Sie durchführen können, und vor allem, warum .
2) Sie müssen einen Schritt zurücktreten und das große Ganze sehen. Ich denke, der beste Weg, dies zu tun, ist, mit folgenden Punkten zu beginnen schema.rb
. Dies sagt Ihnen einige wirklich wichtige Dinge:
- Welches ist das Vokabular/die Konzepte dieses Projekts? Was bedeutet eigentlich "Benutzer" in dieser App? Warum hat die App sowohl ein "Benutzer"- als auch ein "Konto"-Modell und wie unterscheiden/verwandeln sie sich?
- Welche Modelle es gibt, erfahren Sie unter
app/models
aber dies wird Ihnen sagen, welche Daten jedes Modell enthält.
- Dank an
*_id
In diesem Bereich lernen Sie die Zusammenhänge zwischen den Modellen kennen, was Ihnen hilft zu verstehen, wie alles zusammenpasst.
Im Anschluss daran würde ich mir die einzelnen Modelle ansehen *.rb
Datei für (hoffentlich) Kommentare, Validierungen, Assoziationen und jede zusätzliche Logik, die für die jeweilige Datei relevant ist. Halten Sie Ausschau nach normalen alten Ruby-Klassen, die in lib/
.
3) Ich persönlich würde dann einen kurzen Blick darauf werfen routes.rb
denn es verrät Ihnen zwei wichtige Dinge: einen kurzen Überblick über alle Aktionen in der App und, wenn die Routen und Controller/Aktionen gut benannt und durchdacht sind, ein schnelles Gefühl dafür, wo verschiedene Funktionen untergebracht werden könnten.
An diesem Punkt sind Sie wahrscheinlich bereit, sich mit einer bestimmten Sache zu beschäftigen, die Sie lernen müssen. Suchen Sie das Steuergerät für die Funktion, die Sie am meisten interessiert, und schlagen Sie es auf. Lesen Sie sich die relevanten Aktionen durch, sehen Sie nach, welche Modelle beteiligt sind, und jetzt vielleicht anfangen, Tests zu knacken, wenn Sie wollen.
Vergessen Sie nicht, den Rest Ihrer Werkzeuge zu benutzen: Ruby/Rails-Debugger, Browser-Entwicklungswerkzeuge, Protokolle usw.