Heim > Java > javaLernprogramm > H lustige Tests im Frühling

H lustige Tests im Frühling

Patricia Arquette
Freigeben: 2024-11-26 15:39:13
Original
297 Leute haben es durchsucht

H весёлые тесты в Spring

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! ?

Warum brauchen wir H2?

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:

  1. Es ist langsam.
  2. Es ist riskant (etwas versehentlich zu löschen? Wir sind nicht so!).
  3. Das ist zu realistisch und H2 ist unsere Matrix, in der alles unter Kontrolle ist. H2 ist dein Freundescode:
  • Leicht.
  • Eingebaut.
  • Ideal für Tests.

application.properties einrichten: Lassen Sie H2 die Arbeit für Sie erledigen

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

Nach dem Login kopieren
Nach dem Login kopieren

Was bedeutet das alles?

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.

Abhängigkeiten hinzufügen

Für Maven

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>

Nach dem Login kopieren
Nach dem Login kopieren

Für Gradle

implementation 'com.h2database:h2'
Nach dem Login kopieren

Tests einrichten

Jetzt schreiben wir unsere Tests. Wir nutzen den Frühling, die Magie der Anmerkungen und ein wenig Liebe zum Code.

Beispiel: Hinzufügen eines Benutzers

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

Nach dem Login kopieren
Nach dem Login kopieren

Testen des Hinzufügens eines Benutzers

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>

Nach dem Login kopieren
Nach dem Login kopieren

Was ist hier los?

@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.

Ergebnisse

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage