Ich habe versucht, einem lockeren TDD-Workflow für eines meiner Open-Source-Projekte zu folgen. Es ist eine API für andere Programmierer zu verwenden.Sollte ich Tests schreiben, bevor sie kompilieren?
Als solche, ein wichtiger Aspekt sowie die API "arbeiten" ist auch Design, wie es verbraucht wird. Ich habe einige Leute sagen hören, dass das Schreiben von Tests, bevor sie kompiliert werden, eine Verschwendung von Zeit ist und dazu neigt, ständig neu geschrieben zu werden, bis die API stabil ist. Ich habe auch gehört, dass es ein Workflow wie so folgen sollte:
- Schreiben Sie die Tests, die nicht kompiliert werden
- Machen Sie es kompilieren
- Machen Sie es grün
Ich war Ich versuche, diesem Workflow zu folgen, aber am Ende habe ich einige komische Dinge. Zum Beispiel in meinem API habe ich diese zwei Methoden:
Handles(string pattern); //had this one already
Handles(IPatternMatcher pattern); //needed this one
ich die zweite Form des Verfahrens erhalten benötigt, um meine API hinzugefügt. Also, ich endete mit einem toten einfachen Test wie folgt:
public void Handles_SupportsIPatternMatcher()
{
var api=new MyAPI();
api.Handles(new TestPatternMatcher());
}
Was scheint wie eine Verschwendung, nachdem es umgesetzt wird.
Sollte ich diesen Workflow weiterverfolgen oder gibt es Möglichkeiten, ihn zu verbessern? Wie kann ich Tests schreiben, die im Grunde nur nach Compilerfehlern suchen? Da es sich um eine öffentlich konsumierbare API handelt, sollte ich mich über solche Tests Gedanken machen?
"Red-Green-Refactor" klingt viel besser als "Compile-Compiles-Green nicht kompilieren": P –
Dies ist eine sehr gute Frage für programmers.stackexchange.com –
@SimonWithehead gut ... technisch Compiler-Fehler auch zählt als "rot" :) – Earlz