Ich möchte meine Unit Test Assemblies optimieren. Insbesondere möchte ich sicherstellen, dass mehrere Entwickler gleichzeitig arbeiten können, ohne sich gegenseitig auf die Füße zu treten. Was ist die beste Vorgehensweise beim Erstellen von Komponententests? Eine Unit-Test-Klasse pro Real-Klasse, Unit-Tests nach Problem und nicht nach Klasse aufgeteilt, eine große Unit-Test-Klasse für alle Klassen (ich bezweifle es), etc. ??Der beste Weg, um Ihre Unit Test Assemblies zu strukturieren?
Antwort
Es gibt drei mögliche Vorgehensweise Unit-Tests zu organisieren:
- Testmethod in Testklasse pro Testklasse. Der beliebteste.
- Testmethode in der Testklasse pro Testvorrichtung. Minimieren Sie den Text Fixture/Tear-Down-Code.
- Testmethode in der Testklasse pro getestetem System (Subsystem, Modul, einige Klassen).
Normalerweise gibt es Bedarf mehr automatisierten Testanordnungen zu halten:
- Unit-Test Assembly - mit reinem Komponententest, dh jede Einheit Testen Mocks verwenden, Test-Dumps.
- Integrations-/Verbrauchertest-Assembly - zur Überprüfung der Integration von Systemeinheiten, überprüft, ob verbraucherkritische Funktionen ordnungsgemäß funktionieren.
Ich mag die eine Testklasse für eine Klassenkonvention von Java. Dies stellt sicher, dass Sie immer wissen, wo Sie einen Test finden, und die Testeinheiten sind klein genug, um viele Leute daran arbeiten zu lassen, ohne viel zu tun zu müssen, weil sie alle in einer Datei sind.
Sie können auch nur die Tests für eine Klasse ausführen, wenn Sie eine größere Testsuite haben und eng an dieser Klasse arbeiten.
Ich denke, der beste Weg ist, auf Verhalten zu unterscheiden. Ein Verhalten für jede Testklasse. Das bedeutet mehrere Testklassen für jede Klasse. Eine verwandte Frage mit Beispiel finden Sie here.
Der Ansatz, dem ich mich zugewandt habe, ist ein Kontext-Spezifikations-Stil von Komponententests, der deine Komponententests in Gruppierungen von Verhalten aufbricht; zum Beispiel, wenn ich auf einer neuen ASP.NET Web-Seite für eine Website arbeite den Jobstatus-Seite aufgerufen würde ich eine Verzeichnisstruktur wie dieses:
unit-tests -> spec_for_job_status_page
wo spec_for_job_status_page der Ordner, der die Lösung Datei enthält, csproj-Datei und zugehörige Klassen.
Was die Struktur der Einheit Testklassen betroffen sind Ich mag eine Namenskonvention verwenden, die die Kontextspezifikation Stil wie folgt:
namespace spec_for_job_status_page
{
[TestFixture]
public class when_the_job_status_page_is_loaded
{
[SetUp]
public void context()
{
//write set-up code here for your test
}
[Test]
public void should_show_the_job_number()
{
//write the assertion code here. Should be a single line
}
}
}
- 1. Der beste Weg, um Flasche POST Unit Test zu behandeln
- 2. Der beste Weg, um ein CSS-Stylesheet zu strukturieren
- 3. Was ist der beste Weg, um SLF4J-Log-Nachrichten im Unit-Test zu testen?
- 4. Was ist der beste Weg, Daten auf Firebase zu strukturieren?
- 5. Der effizienteste Weg, um Inhaltslikes in SQL zu strukturieren
- 6. Der beste Weg, um Fehlermeldungen zu behandeln
- 7. Was ist der beste Weg, um Ihre Identifikatoren für Ihre JQuery und CSS zu verfolgen?
- 8. Der richtige Weg, um eine GWT App zu strukturieren
- 9. Was ist der beste Weg, um Code für das Zusammenführen von Git zu strukturieren?
- 10. Was ist der beste Weg, um eine Datenbank-Datensatz von einigen "unebenen" XML zu strukturieren
- 11. Was ist der beste Weg, um diese Daten in einer Datenbank zu strukturieren?
- 12. Der beste Weg, um AJAX für eine Zend Framework-Anwendung zu strukturieren
- 13. Der beste Weg, um Fehler zu behandeln
- 14. Der beste Weg, um Erweiterungsmethoden zu implementieren
- 15. Der beste Weg, um Stringstream zu leeren?
- 16. Der beste Weg, um Rollover zu machen?
- 17. Der beste Weg, um IronPython zu erkennen
- 18. Was ist der beste Weg, Unit-Test in node.js zu schreiben?
- 19. Logischer Weg, um Ihre Schnittstellen zu sortieren
- 20. Der beste Weg, um Integer-Überlauf in C# zu behandeln?
- 21. Der beste Weg, um eine Aufgabe zu planen?
- 22. Der beste Weg, um eine druckerfreundliche ASP.NET-Seite zu erstellen?
- 23. Der beste Weg, um eine Liste in Java zu pflegen
- 24. Der beste Weg, um Konfigurationsdateien unter SVN zu behalten?
- 25. Der beste Weg, um eine komplexe iPhone-Projektdateistruktur zu organisieren?
- 26. Zend-Framework. Was ist der beste Weg, um Ihre Website/App zu verwalten?
- 27. Was ist der beste Weg, um Ihre Anwendung mit Swing GUI zu verknüpfen?
- 28. Der beste Weg, um Sound in die Website zu integrieren
- 29. URL-Struktur, der beste Weg
- 30. Der beste Weg, um einen Benutzer eindeutig zu identifizieren