PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Postgres Tertanam untuk Tes Boot Musim Semi

Saya penulis perpustakaan tes-pegas-database-embedded yang disebutkan oleh @MartinVolejnik. Saya pikir perpustakaan harus memenuhi semua kebutuhan Anda (PostgreSQL + Spring Boot + Flyway + pengujian integrasi). Saya sangat menyesal bahwa Anda mengalami beberapa masalah, jadi saya telah membuat aplikasi demo sederhana yang menunjukkan penggunaan perpustakaan bersama dengan kerangka Boot Musim Semi. Di bawah ini saya rangkum beberapa langkah dasar yang perlu Anda lakukan.

Konfigurasi pakar

Tambahkan ketergantungan maven berikut:

<dependency>
    <groupId>io.zonky.test</groupId>
    <artifactId>embedded-database-spring-test</artifactId>
    <version>2.0.1</version>
    <scope>test</scope>
</dependency>

Konfigurasi jalur terbang

Tambahkan properti berikut ke konfigurasi aplikasi Anda:

# Sets the schemas managed by Flyway -> change the xxx value to the name of your schema
# flyway.schemas=xxx // for spring boot 1.x.x
spring.flyway.schemas=xxx // for spring boot 2.x.x

Selanjutnya, pastikan Anda tidak menggunakan org.flywaydb.test.junit.FlywayTestExecutionListener . Karena perpustakaan memiliki pendengar eksekusi pengujian sendiri yang dapat mengoptimalkan inisialisasi database dan pengoptimalan ini tidak berpengaruh jika FlywayTestExecutionListener diterapkan.

Contoh

Contoh kelas pengujian yang mendemonstrasikan penggunaan basis data tertanam:

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureEmbeddedDatabase
public class SpringDataJpaAnnotationTest {

    @Autowired
    private PersonRepository personRepository;

    @Test
    public void testEmbeddedDatabase() {
        Optional<Person> personOptional = personRepository.findById(1L);

        assertThat(personOptional).hasValueSatisfying(person -> {
            assertThat(person.getId()).isNotNull();
            assertThat(person.getFirstName()).isEqualTo("Dave");
            assertThat(person.getLastName()).isEqualTo("Syer");
        });
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui stempel waktu saat baris diperbarui di PostgreSQL

  2. Apakah kueri jenis SELECT satu-satunya jenis yang dapat disarangkan?

  3. Cara memberikan semua hak istimewa pada tampilan kepada pengguna yang sewenang-wenang

  4. pg permata '0.14.0' di Mountain Lion gagal

  5. Bagaimana saya bisa menghentikan skrip Postgres ketika menemukan kesalahan?