sql >> Database teknologi >  >> RDS >> PostgreSQL

Embedded Postgres til fjederstøvletest

Jeg er forfatteren af ​​embedded-database-spring-test-biblioteket, der blev nævnt af @MartinVolejnik. Jeg synes, biblioteket skal opfylde alle dine behov (PostgreSQL + Spring Boot + Flyway + integrationstest). Jeg er virkelig ked af, at du har nogle problemer, så jeg har lavet en simpel demo-app, der demonstrerer brugen af ​​biblioteket sammen med Spring Boot framework. Nedenfor har jeg opsummeret nogle grundlæggende trin, som du skal gøre.

Maven-konfiguration

Tilføj følgende maven-afhængighed:

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

Flyway-konfiguration

Tilføj følgende egenskab til din applikationskonfiguration:

# 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

Sørg desuden for, at du ikke bruger org.flywaydb.test.junit.FlywayTestExecutionListener . Fordi biblioteket har sin egen testudførelseslytter, der kan optimere databaseinitialisering, og denne optimering har ingen effekt, hvis FlywayTestExecutionListener er anvendt.

Eksempel

Et eksempel på testklasse, der demonstrerer brugen af ​​den indlejrede database:

@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. Sådan opretter du en serverløs GraphQL API til MySQL, Postgres og Aurora

  2. Sådan fungerer current_time i PostgreSQL

  3. Sådan får du en liste over alle Check Constraints i SQL Server-databasen - SQL Server / TSQL Tutorial Del 85

  4. Heroku-databasegendannelsesproblem