Hallo, lieber Java-Krieger! ? Wenn Sie hier sind, ist es an der Zeit, mit dem Testen zu beginnen und zu beweisen, dass Ihr Code besser funktioniert als das, was Vermarkter versprechen. Heute werden wir über das Testen der Logik in Spring mithilfe einer H2-Datenbank sprechen. Lass uns gehen! ?
Stellen Sie sich vor: Sie schreiben den coolsten Service, haben aber Angst, dass Ihre Geschäftslogik in einer Welt der Illusionen lebt. Sie möchten nicht, dass Tests die echte Datenbank steuern, weil:
Bevor wir beginnen, bereiten wir unsere gemütliche kleine Testwelt vor. Dazu schreiben wir die notwendigen Einstellungen in src/test/resources/application.properties. Voila:
# Подключаем H2 spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password # Убедимся, что Hibernate всё за нас делает spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.datasource.url: gibt an, dass wir eine „In-Memory“-Datenbank (mem:testdb) verwenden möchten, die verschwindet, sobald wir die Tests ausschalten.
DB_CLOSE_DELAY=-1: Die Datenbank bleibt bis zum Ende der JVM bestehen (es lebe die Stabilität!).
spring.jpa.hibernate.ddl-auto=create-drop: Wir erstellen eine Datenbank, wenn wir Tests ausführen, und löschen sie anschließend. Sauberkeit ist der Schlüssel zum Erfolg.
Für Maven
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency>
Für Gradle
implementation 'com.h2database:h2'
Jetzt schreiben wir unsere Tests. Wir nutzen den Frühling, die Magie der Anmerkungen und ein wenig Liebe zum Code.
Nehmen wir an, wir haben eine Benutzerentität:
# Подключаем H2 spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password # Убедимся, что Hibernate всё за нас делает spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
Testen des Hinzufügens eines Benutzers
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency>
@SpringBootTest: Den Spring-Kontext anheben (alles ist wie in der Produktion, aber sicher).
@Autowired: Abhängigkeitsinjektion, weil wir es verdienen.
UserRepository: Ihr Repository funktioniert wie im Kampf.
Jetzt wissen Sie, wie Sie eine Freundschaft zwischen Spring, H2 und Tests herstellen können. Diese Beispiele sind Ihr Schlüssel zu einer Welt, in der es keine Fehler gibt und Tests auf Anhieb funktionieren. Vergessen Sie nicht: Tests verbessern Ihren Code nicht, aber sie helfen Ihnen, ruhig zu schlafen. Viel Glück! ?
Das obige ist der detaillierte Inhalt vonH lustige Tests im Frühling. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!