Ich bin sehr neu in TDD Welt. Ich habe ein paar Fragen bezüglich TDD.
Muss ich in TDD zuerst testen? Ich habe gehört, dass es bei TDD nicht um Tests geht. Es geht um Design. Ich stimme zu, dass es gut ist, zuerst einen Test zu machen, aber was ich gerne weiß, ist, dass es immer noch TDD ist, wenn wir dem Test-Last-Ansatz folgen?
Sollen wir lieber BDD als TDD verwenden? Früher habe ich die Spezifikation meiner Aufgabe aufgelistet und versuche, den Testfall basierend auf meiner Spezifikation zu schreiben. Ist es ein falscher Ansatz? Willst du BDD oder TDD für deine Entwicklung verwenden?
Verspottung? Einige Leute aus meinem Team pflegten zu sagen, dass sie TDD praktizieren. Aber sie folgen niemals dem Test-First-Ansatz. Sie verspotten die Daten nie. Müssen wir die Daten in TDD verspotten?
"Verwenden von Mock Library" Vs "Erstellen der Mock-Klasse mit Daten manuell". Bevorzugen Sie eine Scheinbibliothek oder erstellen Sie die Scheinklassen mit einigen Scheindaten?
Irgendein empfohlenes Buch für TDD oder BDD? Ich lese Kent Becks klassische Test-Driven Development - mit Beispiel. Ich habe festgestellt, dass dieses Buch in einem sehr frühen Stadium von TDD veröffentlicht wird, so dass einige der Dinge in diesem Buch nicht überholt sind.
1). Muss ich zuerst in TDD testen? Ich habe gehört, dass es bei TDD nicht um Tests geht. Es geht um Design. Ich bin damit einverstanden Es ist gut, zuerst einen Test zu machen, aber was ich Ich möchte wissen, dass es immer noch TDD ist wenn wir dem Test-Last-Ansatz folgen?
Ja! Genau genommen ist TDD Test Driven Development. Die Entwicklung wird also vom Test vorangetrieben. Also testen Sie zuerst und entwickeln dann ein Programm, um alle Tests zu bestehen.
2). Sollen wir lieber BDD verwenden? TDD? Früher habe ich die Liste aufgeführt Spezifikation meiner Aufgabe zuerst und ich Versuchen Sie, den Testfall basierend auf meinem zu schreiben Spezifikation. Ist es ein falscher Ansatz? Mögen Sie lieber BDD oder TDD? für Ihre Entwicklung?
Ich denke, du solltest sie ausgleichen. Verwenden Sie eine andere Technik, um das gesamte Design zuerst bereitzustellen, so gut wie die Zeit zur Verfügung stellt (machen Sie ein Risikomanagement, um die angemessene Zeit zu finden, die Sie für das Entwerfen ausgeben sollten) (Finden Sie einen Artikel über " RUP essential ". Es gibt eine ziemlich gute Idee über die Balance zwischen Agilität und Agilität. Identifizieren Sie die kritischsten Teile, erstellen Sie dann Tests und entwickeln Sie, um den Test zu bestehen.
3). Mocking? Einige Leute von meinem Team pflegte zu sagen, dass sie üben TDD. Aber sie folgen niemals zuerst dem Test Ansatz. Sie verspotten die Daten nie. Machen müssen wir die Daten in TDD vortäuschen?
Test-first und Spott ist nicht das Gleiche. Mocking ermöglicht Code mehr testbar sowie testbar, wenn andere Teile (auf denen dieser Code beruht) nicht vorhanden ist. Wenn es also keine solche Abhängigkeit gibt (IF !!), dann kannst du sie nicht verspotten. (Lesen Sie " Effektiv mit Legacy-Code arbeiten " Näheres über den Nähfußpunkt) .
4). "Mock Library" Vs "verwenden, um die Mock-Klasse mit Daten manuell zu erstellen". Machen Du bevorzugst es, eine Bibliothek zu benutzen oder Erstelle die Scheinklassen mit etwas Spott Daten?
Ich denke, es ist einfach so, als würde man jemand anderes benutzen oder eine eigene Bibliothek erstellen. Ganz abhängig von der Situation und vielen Faktoren. Zum Beispiel, wenn Ihr Projekt groß ist und Sie eine passende Scheinbibliothek finden können, verwenden Sie sie.
5). Irgendein empfohlenes Buch für TDD oder BDD? Ich habe Kent Becks Klassiker gelesen Testgetriebene Entwicklung - mit Beispiel. Ich habe festgestellt, dass dieses Buch in veröffentlicht wurde sehr frühen Stadium von TDD so einige der Dinge in diesem Buch sind nicht ein bisschen veraltet.
Es gibt eine Liste von Büchern über TDD hier .
Hoffe, das hilft.
Muss ich in TDD zuerst testen?
Ja, TDD ist im Wesentlichen:
%Vor%Wenn Sie einen anderen Prozess verwenden, kann es sinnvoll sein, einige der Tools und Techniken zu verwenden, aber es ist nicht wirklich TDD. Für was auch immer das ist.
Verspottung?
Es gibt 4 mehr oder weniger brauchbare Alternativen, die verschiedene Gurus befürworten.
mock-to-zero: Spioniere jede Abhängigkeit so, dass jede Einheit (z. B. Java-Klasse) effektiv isoliert getestet wird.
mock-to-linear: nur zyklische Abhängigkeiten, so dass es eine lineare Reihenfolge von Tests gibt, wobei jede Einheit nur mit getesteten Abhängigkeiten getestet wird.
mock-for-speed: simulieren Sie nur langsame, asynchrone oder anderweitig problematische Interfaces.
Zero-Mocking: Testen Sie einfach alles, verwenden Sie einen Debugger, um herauszufinden, was passiert, wenn etwas kaputt geht.
Vermeiden Sie # 1, wenn Sie Ihr Spottwerkzeug nicht lieben, und vermeiden Sie # 4, wenn Sie Ihren Debugger nicht lieben.
Für BDD finden Sie eine gute Referenz in:
Sie können auch die Arbeit von Dan North für ihn verfolgen der Unterschied zwischen TDD und BDD ist klein
Andere Links Verhaltensorientierte Entwicklung (BDD)
Für mich selbst denke ich, wenn du BDD machst, machst du schon TDD
Ich hoffe, das hilft
(Ich wählte die einfachste Frage, um zu antworten, da ich nicht qualifiziert bin, andere Fragen zu beantworten)
Irgendein empfohlenes Buch für TDD oder BDD?
Agile Software-Entwicklung, Prinzipien, Muster und Praktiken, von Robert C. Martin
Muss ich in TDD zuerst testen?
Ja, TDD ist unbedingt Test-zuerst. Das Schreiben des Tests ermöglicht es zunächst, über die Funktion nachzudenken, die im Hinblick auf das Verhalten und nicht auf die Implementierung geschrieben werden soll, und konzentriert sich auf das Aufrufen der Funktion und das Verifizieren des Ergebnisses.
Dies führt zu testbarem Code; sonst könntest du dich in einer Sackgasse befinden.
Das Schreiben von Tests erleichtert es außerdem, Tests nicht zu vergessen oder zu vernachlässigen.
Darüber hinaus ermöglicht das Schreiben - und das Scheitern - der Tests zunächst, den Test zu testen. Ein nach dem Code geschriebener Test könnte niemals fehlschlagen.
Sollen wir BDD gegenüber TDD bevorzugen?
Einige sagen BDD ist TDD richtig gemacht , wie der Fokus gesetzt wird auf Spezifikationen.
Müssen wir die Daten in TDD vortäuschen? Einige Leute aus meinem Team pflegten zu sagen dass sie TDD üben. Aber sie niemals dem Test-First-Ansatz folgen.
Sie müssen nicht Mock-Objekte verwenden. Es gibt nur ein Werkzeug, das manchmal bequem sein kann.
"Verwenden von Mock Library" Vs "Erstellen der Scheinklasse mit Daten manuell ".
Ich hatte nie das Bedürfnis, auf einen Mock-Objekt-Generator zurückzugreifen.
Irgendein empfohlenes Buch für TDD oder BDD?
TDD zum Beispiel, ist ein sehr gutes Tutorial und präsentiert eine Reihe von Mustern. Ein anderes großartiges Buch, mehr eine Referenz ist xUnit Muster .
Tags und Links tdd