Rumah > Java > javaTutorial > H ujian menyeronokkan di Musim Bunga

H ujian menyeronokkan di Musim Bunga

Patricia Arquette
Lepaskan: 2024-11-26 15:39:13
asal
347 orang telah melayarinya

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

Helo, pahlawan Jawa yang dikasihi! ? Jika anda berada di sini, maka sudah tiba masanya untuk pergi ke laluan ujian dan membuktikan bahawa kod anda berfungsi lebih baik daripada apa yang dijanjikan oleh pemasar. Hari ini kita akan bercakap tentang menguji logik dalam Spring menggunakan pangkalan data H2. jom pergi! ?

Mengapa kita memerlukan H2?

Bayangkan: anda sedang menulis perkhidmatan yang paling hebat, tetapi anda takut bahawa logik perniagaan anda hidup dalam dunia ilusi. Anda tidak mahu ujian memacu pangkalan data sebenar kerana:

  1. Lambat.
  2. Ia berisiko (memadamkan sesuatu secara tidak sengaja? Kami tidak begitu!).
  3. Ini terlalu realistik, dan H2 ialah matriks kami, di mana segala-galanya terkawal. H2 ialah kod rakan anda:
  • Ringan.
  • Terbina dalam.
  • Sesuai untuk ujian.

Menyediakan application.properties: biarkan H2 melakukan kerja untuk anda

Sebelum kita bermula, mari kita sediakan ujian selesa dunia kecil kita. Untuk melakukan ini, kami akan menulis tetapan yang diperlukan dalam 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

Salin selepas log masuk
Salin selepas log masuk

Apakah maksud semua ini?

spring.datasource.url: menunjukkan bahawa kami ingin menggunakan pangkalan data "dalam memori" (mem:testdb), yang akan hilang sebaik sahaja kami mematikan ujian.
DB_CLOSE_DELAY=-1: pangkalan data akan hidup sehingga penghujung JVM (kestabilan jangka hayat!).
spring.jpa.hibernate.ddl-auto=create-drop: kami mencipta pangkalan data semasa menjalankan ujian, padamkannya selepas itu. Kebersihan adalah kunci kejayaan.

Menambah kebergantungan

Untuk Maven

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

Salin selepas log masuk
Salin selepas log masuk

Untuk Gradle

implementation 'com.h2database:h2'
Salin selepas log masuk

Menyediakan ujian

Sekarang mari tulis ujian kami. Kami menghidupkan Spring, keajaiban anotasi dan sedikit minat untuk kod.

Contoh: Menambah pengguna

Katakan kita mempunyai entiti Pengguna:

# Подключаем 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

Salin selepas log masuk
Salin selepas log masuk

Menguji menambah pengguna

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

Salin selepas log masuk
Salin selepas log masuk

Apa yang berlaku di sini?

@SpringBootTest: Meningkatkan konteks Spring (semuanya seperti dalam pengeluaran, tetapi selamat).
@Autowired: Suntikan kebergantungan kerana kami berhak mendapatnya.
UserRepository: repositori anda berfungsi seperti dalam pertempuran.

Keputusan

Kini anda tahu cara mewujudkan persahabatan antara Spring, H2 dan ujian. Contoh-contoh ini adalah kunci anda kepada dunia yang tiada pepijat dan ujian berfungsi pada kali pertama. Jangan lupa: ujian tidak menjadikan kod anda lebih baik, tetapi ia membantu anda tidur nyenyak. Semoga berjaya! ?

Atas ialah kandungan terperinci H ujian menyeronokkan di Musim Bunga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan