2009-10-22 7 views
26

Ich benutze C# und für Komponententests und Integrationstests muss ich Felder normalerweise basierend auf Attributen automatisch ausfüllen.

Sagen wir, wir werden testen, ob wir Benutzerdaten in die Datenbank schreiben und zurückbekommen können.Gibt es ein Framework für .NET, um Testdaten zu füllen?

  • ich ein Benutzerobjekt erstellen bevölkern Felder Benutzer-Datenbank schreiben
  • lesen Objekt Benutzer aus der Datenbank
  • Prüffelder ob das, was ich schreibe, ist das gleiche wie das, was ich lese

Gibt es einen Rahmen um Benutzer automatisch mit Testdaten zu füllen und zu prüfen, ob zwei Objekte dieselben Werte haben?

Beispielcode kann wie diese

User user = new User(); 
AutoPopulator.Populate(user); 
user.Save(); 
+2

@BilltheLizard - geschlossen als nicht konstruktiv ?? !! Diese Frage ist sehr konstruktiv und die Antworten sind großartig. –

+1

@JohnHenckel Bitte lesen Sie [Welche Arten von Fragen sollte ich vermeiden zu fragen?] (Https://Stackoverflow.com/help/dont-ask) –

+1

@BilltheLizard oh, ich verstehe. Sie meinen, es ist "primär auf Meinung basiert". Ich stimme zu. Aber ich denke, es ist konstruktiv. –

Antwort

15

Werfen Sie einen Blick auf NBuilder, können Sie Testobjekte mit zufälligen Daten oder inkrementieren Werte und alles, was Sie wahrscheinlich denken können. Alles eine nette fließende Oberfläche.

3

Ja, es gibt. Ich fand dies, wenn ich Session # 3 der Summer of NHibernate Serie von Stephen Bohlen beobachtete.

Seine Firma, Microdesk, hat ein Dienstprogramm entwickelt, mit dem Sie den Status einer Datenbank bei der Konstruktion von Testvorrichtungen speichern, den Status der Datenbank zu Beginn jedes Tests festlegen und den ursprünglichen Status der Datenbank wiederherstellen können auf Testvorrichtung Dekonstruktion.

Laden Sie das Dienstprogramm hier: Microdesk.Utility.UnitTest

Für eine Anleitung, wie man es zu benutzen, die Summer of NHibernate Sitzung # 3 Video anschauen.

-1

Fluent NHibernate hat eine Funktion, die Ihnen alles auf Ihrer Wunsch-Liste gibt, mit Ausnahme des Auto-Population Teil:

-Link: http://wiki.fluentnhibernate.org/Persistence_specification_testing

jedoch C# mit Code-Verträgen gegeben, wäre es nicht um schwer selbstautomatisch gültige Objekte selbst zu erstellen, indem Reflektionen verwendet werden.

60

Sie könnten es relevant finden. Hier ist eine Liste von einigen anderen Frameworks wie heute:

Bekannte und respektiert:

Wenig bekannte:

Ungewohnte:

+0

Ich konnte AutoPoco nicht für mich arbeiten lassen, aber AutoFixture scheint sehr nützlich zu sein. –

+1

Bogus scheint am aktivsten aktualisiert zu werden und ich mag seine Fähigkeiten sehr. Danke, dass Sie diese aufgelistet haben! –

+0

Bogus arbeitete für mich, es funktioniert auch für dotnet-Core auf Linux, was ich wollte –