2017-03-11 1 views
0

Ich habe einige Web Services entwickelt, die Datensätze in einer Datenbank hinzufügen und ändern. Ich benutze Maven. Die Verbindung zur Datenbank ist im Anwendungsserver als Datenquelle definiert (weblogic). So habe ich nur meine persistence.xml Verweis auf die Datenquelle.Benötige ich eine persistence.xml für meine Tests/Ressourcen?

Jetzt möchte ich einige Integrationstests durchführen. Ich muss bei diesen Integrationstests mit der Datenbank interagieren, aber da diese Tests außerhalb des Containers ausgeführt werden, muss ich einen anderen persistence.xml auf meinem Testressourcenpfad definieren, damit ich einen EntityManager abrufen und mit der Datenbank interagieren kann? Gibt es einen anderen Ansatz?

+0

Ich nehme an, dass Sie planen, alle Ihre Abhängigkeiten manuell zu injizieren, in diesem Fall werden Sie 'Persistence.createEntityManagerFactory' aufrufen Punkt. Mit dieser Methode können Sie alle erforderlichen Eigenschaften der Persistenzeinheit überschreiben. Davon abgesehen sehe ich nicht, wie dies besser ist, als eine separate "persistence.xml" zum Testen zu haben. Könnten Sie bitte erklären, warum Sie zwei 'persistence.xml' Dateien für eine schlechte Idee halten? – crizzis

+0

Welches Testframework wird verwendet? – jklee

+0

@crizzis wollte nur sehen, ob das der übliche Ansatz ist. Ich denke nicht, dass es eine schlechte Idee ist. Danke für die Antwort. –

Antwort

0

Die Frage ist, wie machen Sie Ihr Bootstrapping für den Datenbank-Test? Nur JUnit ist ziemlich aufwendig.

Ich bevorzuge DeltaSpikes Test-Control Module. Sehr schnelle Tests, ohne Anwendungsserver, aber mit CDI als Container. Kann auch ohne test persistance.xml gehen. Eine andere Lösung ist arquillian. Booten Sie einen kompletten Anwendungsserver, Sie brauchen keine persistance.xml auf test/resources

Verwandte Themen