app9bergamo.com

  

Beste Artikel:

  
Main / Unit Test Benennung gegeben, wenn dann Beispiele

Unit-Test-Benennung gegeben, wenn dann Beispiele

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie, Datenschutzrichtlinie und unsere Nutzungsbedingungen gelesen und verstanden haben. Ich weiß nicht, ob dies ein sehr guter Ansatz ist, aber derzeit habe ich in meinen Testprojekten Eins-zu-Eins-Zuordnungen zwischen jeder Produktionsklasse und einer Testklasse, z. Produkt und Produkttest. In meinen Testklassen habe ich dann Methoden mit den Namen der Methoden, die ich teste, einen Unterstrich und dann die Situation und was ich erwarte, z.

Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, wenden Sie sich an das Hilfezentrum. Wenn diese Frage entsprechend den Regeln in der Hilfe umformuliert werden kann, bearbeiten Sie die Frage.

Ich mag Roy Osheroves Namensstrategie, es ist die folgende: Die Arbeitseinheit kann so klein wie eine einzelne Methode, eine Klasse oder so groß wie mehrere Klassen sein. Es sollte alle Dinge darstellen, die in diesem Testfall getestet werden sollen und unter Kontrolle sind. Für Baugruppen verwende ich das typische. Tests enden, was meiner Meinung nach ziemlich weit verbreitet ist und dasselbe gilt für Klassen, die mit Tests enden:.

Früher habe ich Fixture als Suffix anstelle von Tests verwendet, aber ich denke, letzteres ist häufiger, dann habe ich die Namensstrategie geändert. Ich befolge gerne den Namensstandard "Sollte" für Tests, während ich das Testgerät nach dem zu testenden Gerät benenne. I. Ja, das Schreiben von "Sollte" überall wird ein bisschen repetitiv, aber wie gesagt, es zwingt Schriftsteller dazu, richtig zu denken, was für Anfänger gut sein kann.

Außerdem führt dies im Allgemeinen zu einem lesbaren englischen Testnamen. Mir ist aufgefallen, dass Jimmy Bogard auch ein Fan von "sollte" ist und sogar eine Unit-Test-Bibliothek namens "Sollte" hat. Für Interessierte hat sich mein Ansatz zur Benennung von Tests im Laufe der Jahre weiterentwickelt. Eines der Probleme mit dem oben beschriebenen Sollte-Muster ist nicht einfach auf einen Blick zu erkennen, welche Methode getestet wird.

Für OOP halte ich es für sinnvoller, den Testnamen mit der zu testenden Methode zu beginnen. Für eine gut gestaltete Klasse sollte dies zu lesbaren Testmethodennamen führen. Kent Beck schlägt vor:.

Ein Testgerät pro Einheitsklasse Ihres Programms. Prüfvorrichtungen sind Klassen selbst. Der Name des Testgeräts sollte lauten: Klassennamen. Bei Namen von Testgeräten finde ich, dass "Test" in der allgegenwärtigen Sprache vieler Domänen weit verbreitet ist. Zum Beispiel in einer technischen Domäne: StressTest und in einer Kosmetikdomäne: Daher verwende ich gerne das Präfix "Qa" für alle meine Testklassen.

Es wird nie mit Domänenobjekten verwechselt, und die Verwendung eines Präfixes anstelle eines Suffix bedeutet, dass alle Testgeräte visuell nützlich zusammenleben, wenn Sie Fälschungen oder andere Unterstützungsklassen in Ihrem Testprojekt haben. Ich arbeite in C und behalte meine Testklassen im selben Namespace wie die Klasse, die sie testen.

Dies ist bequemer als separate Test-Namespaces. Natürlich befinden sich die Testklassen in einem anderen Projekt. Namen der Testmethoden.

Es macht die Voraussetzung klar und hilft bei der automatisierten Dokumentation a la TestDox. Dies ähnelt den Ratschlägen im Google-Testblog, jedoch mit einer stärkeren Trennung von Voraussetzungen und Erwartungen. Beispielsweise:. Ich verwende das Given-When-Then-Konzept. Schauen Sie sich diesen kurzen Artikel an: http: Für Namen von Testmethoden finde ich es persönlich sehr nützlich, ausführliche und selbstdokumentierte Namen zu verwenden, zusammen mit Javadoc-Kommentaren, die näher erläutern, was der Test tut.

Ich denke, eines der wichtigsten Dinge ist es, in Ihrer Namenskonvention konsistent zu sein und sie mit anderen Mitgliedern Ihres Teams zu vereinbaren. Zu oft sehe ich viele verschiedene Konventionen, die im selben Projekt verwendet werden. Ich habe kürzlich die folgende Konvention entwickelt, um meine Tests, ihre Klassen und Projekte zu benennen, um ihre Beschreibungen zu maximieren: Nehmen wir an, ich teste die Settings-Klasse in einem Projekt in der MyApp.

Serialisierungs-Namespace. Innerhalb dieses Projekts und natürlich des Namespace werde ich eine Klasse namens IfSettings erstellen, die als IfSettings gespeichert ist. Nehmen wir an, ich teste die SaveStrings-Methode. Ihrer Kreativität bei der Benennung der Tests sind keine Grenzen gesetzt, sodass wir vollständige Satzüberschriften für sie erhalten. Letzteres erspart mir jedoch Tastenanschläge und beschreibt genauer, was ich tue, da ich nicht weiß, dass das getestete Verhalten vorhanden ist, aber ich teste, ob es vorhanden ist.

Nachdem ich die obige Namenskonvention nun etwas länger verwendet habe, habe ich festgestellt, dass das If-Präfix bei der Arbeit mit Schnittstellen verwirrend sein kann. Es kommt einfach so vor, dass die Testklasse IfSerializer. Dies kann sehr ärgerlich werden, wenn zwischen den Tests, der getesteten Klasse und ihrer Schnittstelle hin und her gewechselt wird. Als Ergebnis würde ich jetzt That anstelle von If als Präfix wählen. Ich hoffe, dass dies weitere Ideen hervorbringt, da ich die Benennung von Tests für sehr wichtig halte, da Sie dadurch viel Zeit sparen können, die sonst aufgewendet worden wäre, um zu verstehen, was die Tests tun. E.

Dann erstelle ich Unit-Test-Fixture-Klassen und benenne sie nach der Art der Funktionalität, die ich teste. Ich sollte hinzufügen, dass das Speichern Ihrer Tests im selben Paket, aber in einem parallelen Verzeichnis zur zu testenden Quelle, das Aufblähen des Codes beseitigt, sobald Sie bereit sind, ihn bereitzustellen, ohne eine Reihe von Ausschlussmustern ausführen zu müssen. Ich persönlich mag die Best Practices, die im "JUnit Pocket Guide" beschrieben sind ...

Best Practices für die Benennung von Komponententests [geschlossen] Frage stellen. Was sind die Best Practices für die Benennung von Unit-Testklassen und Testmethoden? Siehe hier: Dies beantwortet Ihre Frage nicht, ist aber eine Lektüre wert: Der Google Style Guide sagt: Wenn Sie Zweifel haben, folgen Sie Google.

Stelle dir das vor. Der Google Java Style Guide ist jetzt hier: Suchen Sie nach "test". Ich mag Roy Osheroves Namensstrategie, sie lautet wie folgt: Tests enden, was meiner Meinung nach ziemlich weit verbreitet ist, und dasselbe gilt für Klassen, die mit Tests enden: Marc Climent Marc Climent 7.313 2 2 Goldabzeichen 42 42 Silberabzeichen 53 53 Bronzeabzeichen.

Für mich macht es keinen Sinn, den Methodennamen in die Testmethode einzufügen. Was ist, wenn Sie die Methode umbenennen? Kein Refactoring-Tool benennt Tests für Sie um.

Schließlich benennen Sie Testmethoden von Hand um oder haben mit größerer Wahrscheinlichkeit falsch benannte Tests. Es ist wie mit Kommentaren. Zu viel ist schlimmer als überhaupt keinen Code zu kommentieren. Peri, ich denke es ist ein Kompromiss.

Einerseits können Ihre Testnamen veraltet sein, andererseits können Sie nicht sagen, welche Methode Ihr Test testet. Ich finde, dass letzteres viel öfter auftaucht. Um Peris Kommentar zu ergänzen: Alle Methoden sind für einige Aktionen verantwortlich, z. Auf diese Weise teste ich eine bestimmte Aktion einer Klasse, ohne einen Methodennamen in einen Testnamen einzufügen. Gute Methodennamen sind oft die gleichen wie die Aktion, die die Methode ausführt. Wenn Sie sich zwischen der Benennung Ihres Tests nach Ihrer Methode oder der von der Methode ausgeführten Aktion entscheiden müssen, die möglicherweise ein Hinweis ist, sollten Sie Ihre Methode umbenennen.

Ich sehe kein Problem mit Methodennamen in Testnamen. Wenn sich eine API ändert, schreiben Sie neue Tests für diese neuen Methoden. Die alten Tests bleiben bestehen und testen die veraltete API, bis sie gelöscht wird. Wenn Sie eine öffentliche Methode ohne Abwärtskompatibilität umbenennen, müssen Sie den Test bereits ändern, um die neue Methode i zu verwenden.

Das Umbenennen des Tests ist der sicherste Teil davon. 26. Januar 14 um 8: Zur Veranschaulichung mit C und NUnit: Deposit 100; Behaupten. Das Bankkonto. Balance, ist. Update 4 Jahre später ... Schneider Schneider 7.712 7 7 Goldabzeichen 57 57 Silberabzeichen 88 88 Bronzeabzeichen. Vielleicht sogar noch besser und weniger überflüssig, schreiben Sie einfach einen Satz, der erklärt, was er tut, vorausgesetzt, der Test funktioniert: Kürzlich habe ich einen Artikel gesehen, in dem eine ähnliche Namenskonvention erwähnt wurde, und wünschte, ich hätte ihn mit einem Lesezeichen versehen.

Entwickelt, um die Testlisten nach Sortierart gut lesbar zu machen. Liest sich sehr ähnlich wie eine Spezifikation, worum es bei TDD geht.

(с) 2019 app9bergamo.com