Die Initialisierung der Datenbank, bevor im Frühjahr Boot-test

Ich bin mit JUnit zum testen meiner Anwendung und alles funktioniert gut, solange die Datenbank initialisiert wurde, bevor die Tests (mit gradle bootRun zu laufen als web-app). Allerdings, wenn die Datenbank leer ist, die Anwendung scheint nicht zu initialisieren, Modelle oder Einrichtungen vor der Prüfung. Gibt es eine Möglichkeit, die ich bin, dies zu tun? Ich machte eine Annahme, dass die ApplicationRunner Klasse lief, bevor Sie den test und initalise der Entitäten. Gibt es eine Möglichkeit, dies zu tun, oder bin ich mit dem falschen Ansatz?

Dies ist, wie mein application.properties Datei sucht, wie:

server.port=8090
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=123456
server.ssl.key-password 123456
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=create
spring.jpa.hibernate.naming-strategy:org.hibernate.cfg.ImprovedNamingStrategy
application.logger.org.springframework=INFO

Meiner Datenbank gespeichert ist, in /src/main/java/application/persistence/DbConfig.java mit einem DriverManagerDataSource Verbindung. Und ich habe setup ApplicationRunner ausführen, fügen Sie ein paar Zeilen an die db beim Start.

edit:

Ich sollte auch hinzufügen, dass diese sind die Anmerkungen ich bin auf dem JUnit-test-Datei:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes={
    AdeyTrackApplication.class, 
    SecurityConfig.class, 
    WebConfig.class,
    AuthorizationController.class
    })
  • Erste Möglichkeit ist die initialize database in setUp Methode in der Testklasse. Eine weitere Möglichkeit ist das erstellen von test-Konfiguration, wo Sie hinzufügen @PostConstruct Funktion initialisieren Daten in der Datenbank und fügen Sie diese Klasse ContextConfiguration.
  • gibt es ein Beispiel für eine Implementierung dieser? Ich bin nicht sehr erfahren mit dem Frühling, und ich noch nicht in dieser annotation in Bezug auf JUnit.
  • Der einfachste Weg ist, injizieren JdbcTemplate in Ihre test-Klasse. Als Nächstes können Sie ausführen der sql-Abfrage mit jdbcTemplate.execue(sql). Zum ausführen dieses Codes vor jedem test sollten Sie setUp Methode mit der annotation @Before. Hier ist Beispiel wie zu injizieren JdbcTemplate und execute query: github.com/spring-projects/spring-boot/blob/master/... und hier ist ein Beispiel für die Verwendung @Before junit.sourceforge.net/javadoc/org/junit/Before.html
InformationsquelleAutor px06 | 2016-07-08
Schreibe einen Kommentar