Gibt es einen Rahmen für die .NET-Testdaten zu füllen? [geschlossen]
Frage
Ich bin c # und für Unit-Tests und Integrationstests verwenden in der Regel brauche ich Felder automatisch basierend auf Attributen zu füllen.
Können sagen, wir werden prüfen, ob wir und wieder Benutzerdaten in der Datenbank schreiben.
- Ich erstelle ein Benutzerobjekt zu füllen Felder Benutzer-Datenbank schreiben
- liest Benutzerobjekt aus der Datenbank
- Prüffelder wenn das, was ich schreibe, ist das gleiche wie das, was ich gelesen
Gibt es einen Rahmen automatisch Benutzer mit Testdaten zu füllen und prüfen, ob zwei Objekte sind die gleichen Werte haben?
Beispielcode kann wie diese
User user = new User();
AutoPopulator.Populate(user);
user.Save();
Lösung
Hier finden Sie aktuelle NBuilder . Damit können Sie Prüflingen mit zufälligen Daten, Inkrementieren Werte bauen, und alles, was Sie wahrscheinlich denken. Alle durch eine schöne fließend Schnittstelle.
Andere Tipps
Sie könnte es relevant finden. Hier ist eine Liste von einigen anderen Frameworks wie heute:
Bekannte und respektiert:
- NBuilder
- AutoFixture
- AutoPoco
- Bogus - C # Hafen von faker.js mit locale-Unterstützung. Wird von Elasticsearch (NEST).
Wenig bekannte:
Ungewohnte:
- TestDataGenerator
- TestDataFactory (Nicht mehr)
- Testdata
- Any-.Net
Ja, es gibt. Ich dies gefunden, wenn Session # beobachten 3 des Summer of NHibernate Serie von Stephen Bohlen .
Seine Firma, Microdesk hat ein Dienstprogramm entwickelt, das Ihnen erlaubt, den Zustand einer Datenbank zu speichern Vorrichtungsbau auf Test, stellen Sie den Zustand der Datenbank zu Beginn jedes Tests, und erholen sich in den ursprünglichen Zustand der Datenbank auf Prüfadapter Dekonstruktion.
Laden Sie das Dienstprogramm hier: Microdesk.Utility.UnitTest
Für eine Anleitung, wie man es benutzen, beobachten Sie die Summer of NHibernate Sitzung # 3 Video.
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
Angesichts der Tatsache C # mit Code Verträgen, wäre es nicht zu hart sein, um Auto-magisch erstellen gültige Objekte selbst Reflexion verwendet wird.