Best Practice Datenbereitstellung Unit Test

ubuntu_88

Mitglied
Guten Abend,

ich möchte gerne wissen, wie man Daten für Unit Tests bereitstellt.
Was würdet ihr machen?

Es geht um ein Entwicklungsprojekt mit mehreren Leuten.
Jeder betreibt eine lokale Datenbank, aus der die Daten für die Unit Tests kommen.
So wird keine gleiche Prüfung erreicht, weil die Daten sich lokal unterscheiden können.

Meine beiden Ideen sind, Mockito zu nutzen, und/oder eine Datenbank, die sich nach dem Test wieder zurücksetzt.

Was sind Vorteile und Nachteile?

Danke!

Beste Grüße
 

Tobse

Top Contributor
Wenn ihr rohe Datenbankabfragen macht würde ich eine SQLite Datenbank empfehlen. Je nachdem ob ihr eure DB-Migrationen automatisiert kann man dann auch ziemlich einfach diese Test-DBs migireren. In diesem Fall macht eine DB pro Test Suite Sinn weil dann der Testfall klarer definiert ist.
Aber wenn die Migrationen händisch ausgeführt werden wird das migrieren der Test-DBs eine s****** Arbeit und Fehleranfällig ist das auch. Dann würde ich eine DB für die Tests nehmen, aber auch SQLite weil man die einfach mit den Testfiles speichern kann (auch im Repo).

Wenn ihr mit einem ORM arbeitet kannst du die nötigen Beans ja auch händisch erstellen und bist damit völlig unabhängig von einer Datenbank.
 
Zuletzt bearbeitet:

ubuntu_88

Mitglied
Wir nutzen JPA ORM.
Was genau meinst du mit den Migrationen?
Welche Vorteile hätten die Test Suites?

Es sind Beans schon erstellt worden. Würde man dann ein "Repository" erstellen und davon eine Mock Klasse ableiten https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&uact=8&ved=0CDoQFjAE&url=http%3A%2F%2Fwww.ipd.uka.de%2FTichy%2Fuploads%2Ffolien%2F164%2F04Mock-Objekte.pdf&ei=wWZ0VevcE4TmyQOMn4CADg&usg=AFQjCNHUsWOW65PsXwkDHij2X--joLS2Tw&sig2=swNcpZ4OK6ucv-y_6Kq6dQ, Seite 3.
Mit einer weiteren Klasse würde man dann das Repository mit einer Mock Factory (Patterns For Better Unit Testing With JPA | Javalobby) füttern, oder?

Besonderes wichtig sind auch qualitativ und quantitativ gute Testdaten.
Wie kommt ihr an solche?
 
Zuletzt bearbeitet:

Tobse

Top Contributor
Mit Migrationen meine ich Änderungen an der Datenbank. Neue Felder, neue Tabellen, änderungen von Datentypen, Indizes, alles was sich ändern kann.

Mit den Beans habe ich mich vllt nicht richtig ausgedrückt. Die Klassen gibt es selbstverständlich schon, ich meinte die Objekte. In den Beiden Links wird genau das gemacht, was ich meinte: Die Instanzen der Beans werden nicht aus der DB geladen sondern direkt im Test-Code erzeugt: User u = new User(24, "Hans");

Wenn es um spezielle Testfälle geht (dass z.B. berechnungen korrekt laufen) konstruiere ich die Testdaten meistens; denn nur so kann man das Ergebnis prüfen, ohne den Code für die Berechnung auch in den Test zu packen (womit der Test obsolet ist).
Wenn es darum geht einfach viele, realitätsnahe Daten zu haben entnehme ich die fast immer der Produktiv-Datenbank. Daten, die da aus Datenschutztgründen nicht "rauskopiert" werden dürfen, "generiere" ich mit eigens dafür gemachten Formeln (z.B. eine Liste mit Einkäufen/Zahlungsbestätigungen oder GPS Daten)
 
Zuletzt bearbeitet:

Tobse

Top Contributor
Über das MockRepository. z.B.

Java:
// Applikationscode
public User[] getFriends()
{
    // ORM benutzen um alle User -> User Beans zu bekommen, welche Freunde von this sind.
}

Java:
// Testcode
public User[] getFriends()
{
    return new User[]{new User(4, "Hans"), new User(3, "Bernd")};
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Unit Testing mit vielen Bedingungen - Best Practice? Java Basics - Anfänger-Themen 9
neerual Klassen Wie rufe ich Klassen, die andere Klassen extenden in einer Test Unit auf? Java Basics - Anfänger-Themen 10
M Open Source Projekt mit Unit Tests gesucht Java Basics - Anfänger-Themen 5
T Unit tests fehlerhaft bitte um hiiiiilfe :D Java Basics - Anfänger-Themen 1
J J-Unit Tests Java Basics - Anfänger-Themen 6
V Mediaplayer - NullPointerException bei Unit-Test Java Basics - Anfänger-Themen 4
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
W junit.Test not accessible? Java Basics - Anfänger-Themen 4
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
A Junit Test für MysqlDataSource JDBC Java Basics - Anfänger-Themen 3
A Test Junit Java Basics - Anfänger-Themen 1
H Junit test Java Basics - Anfänger-Themen 12
P JUnitTest Best Practise (Ein Assert pro Test?) Java Basics - Anfänger-Themen 10
P Methoden JUnit 4 - Test Java Basics - Anfänger-Themen 6
Mr_Kleeblatt Operatoren if (arri[i] != "test.java"&& arri[i] != "test.class") Java Basics - Anfänger-Themen 3
N Fehler bei JUnit Test Java Basics - Anfänger-Themen 5
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13
D Test auf Dopplungen Java Basics - Anfänger-Themen 32
B JUnit Test erstellen Java Basics - Anfänger-Themen 6
B zzz.test Java Basics - Anfänger-Themen 13
W Problem bei JUnit Test Aufgabe Java Basics - Anfänger-Themen 15
W JUnit Test und HashCode Java Basics - Anfänger-Themen 14
C Erste Schritte Hexidezimal-Test Java Basics - Anfänger-Themen 2
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
B Palindrom Test mit Junit Java Basics - Anfänger-Themen 23
T Minesweeper Test Java Basics - Anfänger-Themen 2
S Junit Test Java Basics - Anfänger-Themen 2
F Test Java Basics - Anfänger-Themen 12
W Ist das ein legitimer Test? Java Basics - Anfänger-Themen 5
shiroX Methoden JUnit-Test einer void-Methode Java Basics - Anfänger-Themen 4
B Binäre Suche - Junit Test Java Basics - Anfänger-Themen 6
B Datentypen Test float und double speichern Zahlen nur ungefähr Java Basics - Anfänger-Themen 4
Z Vererbung Test auf Normalverteilung, Wilcoxon Java Basics - Anfänger-Themen 3
M Assertion NotNull Test Java Basics - Anfänger-Themen 3
S Separate Funktion für JUnit-Test Java Basics - Anfänger-Themen 3
W Test, ob Datei existiert, schlägt fehl Java Basics - Anfänger-Themen 4
T JUnit test failed Java Basics - Anfänger-Themen 3
H Array Test Methode schreiben Java Basics - Anfänger-Themen 3
R JUnit Test mit einer Dateistruktur als Testparameter Java Basics - Anfänger-Themen 3
V Bruchrechner Test Java Basics - Anfänger-Themen 7
T Test läuft schief Java Basics - Anfänger-Themen 3
shiroX OOP Array kleinste Zahl mit jUnit test Java Basics - Anfänger-Themen 3
G mache aus Test nach sortieren estt oder java aajv Java Basics - Anfänger-Themen 5
S Code stimmt nicht für vorgegebenen JUnit-Test Java Basics - Anfänger-Themen 2
x22 Java Multiple Choice Test Java Basics - Anfänger-Themen 8
R JUnit Test mit mehrfach ausgeführt Java Basics - Anfänger-Themen 6
B JUnit - Mini-Test Java Basics - Anfänger-Themen 9
T Unterschied zwischen Integrationstest und JUnit test? Java Basics - Anfänger-Themen 12
N Test mit assert Java Basics - Anfänger-Themen 9
Y Junit Test - Testwert ändert sich Java Basics - Anfänger-Themen 12
K Palindrom Test Java Basics - Anfänger-Themen 9
S Performance-/Stress Test für Webanwendung Java Basics - Anfänger-Themen 2
H Ich kann mein Java Programm Test.class nicht ausführen Java Basics - Anfänger-Themen 6
H Javabefehl Test Java Basics - Anfänger-Themen 3
S Hilfe zu Java-Programm und JUnit Test!! Java Basics - Anfänger-Themen 5
T JUNit Test IOException Java Basics - Anfänger-Themen 5
H lucas-test Java Basics - Anfänger-Themen 14
P White-Box-Test Verständnisproblem Java Basics - Anfänger-Themen 11
N Methoden Test ob Server vorhanden ist Java Basics - Anfänger-Themen 4
N Test Datei = Bild Java Basics - Anfänger-Themen 5
S Erste Schritte 1. Test Programm Java Basics - Anfänger-Themen 21
Spin JUNIT Test Case - Problem bei testen Java Basics - Anfänger-Themen 2
T brauche HILFE beim Junit test:eek: Java Basics - Anfänger-Themen 11
timbeau JUnit Test Dauer speichern/loggen Java Basics - Anfänger-Themen 16
E Am Mittwoch Test und ich checks überhaupt nich Java Basics - Anfänger-Themen 27
A junit test wann verwendet man "was"? Java Basics - Anfänger-Themen 4
J JUnit Test Java Basics - Anfänger-Themen 2
D Test einer Chipkarte Java Basics - Anfänger-Themen 2
J Problem mit Test-Klasse Java Basics - Anfänger-Themen 4
E Test, ob String in Double umwandelbar ist Java Basics - Anfänger-Themen 3
J Test steht vor der Tür !! Java Basics - Anfänger-Themen 2
X Array nur mit Zahlen (test) Java Basics - Anfänger-Themen 11
Houly JUnit Test Suite anlegen Java Basics - Anfänger-Themen 6
F Primitiver Lucas-Lehmer-Test hängt sich auf Java Basics - Anfänger-Themen 7
M Erster HashMap-test Java Basics - Anfänger-Themen 5
O Test auf JComponent Java Basics - Anfänger-Themen 7
pun Junit Test erkennt Exception nicht.. Java Basics - Anfänger-Themen 14
D C0 und C1 Test nochmal Java Basics - Anfänger-Themen 9
D C0 und C1 Test Java Basics - Anfänger-Themen 3
G BlueJ jUnit Test Java Basics - Anfänger-Themen 6
J Test auf UTF-8 Java Basics - Anfänger-Themen 2
M Wo und wie speich. ich .java und wo den zugehörigen test? Java Basics - Anfänger-Themen 2
Shalimar Test, ob mehr pos. oder neg. Zahlen Java Basics - Anfänger-Themen 3
M test Java Basics - Anfänger-Themen 5
M test Java Basics - Anfänger-Themen 2
M test Java Basics - Anfänger-Themen 10
V Test mit JUnit verbinden Java Basics - Anfänger-Themen 3
M test Java Basics - Anfänger-Themen 4
H Miller Rabin Test Primzahlen werden teilweise nicht gefunden Java Basics - Anfänger-Themen 5
C Multiple Choice Test Java Java Basics - Anfänger-Themen 5
G Grundfläche färben, ein Bild (NORTH) ind Test darunter? Java Basics - Anfänger-Themen 6
M Palindrom Test mit Char-arrays! Java Basics - Anfänger-Themen 3
M Java Test Übungsfragen Hilfe! Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben