sql >> Databasteknik >  >> RDS >> PostgreSQL

Inbäddad Postgres för Spring Boot Tests

Jag är författaren till biblioteket inbäddade-databas-fjädertest som nämndes av @MartinVolejnik. Jag tycker att biblioteket ska uppfylla alla dina behov (PostgreSQL + Spring Boot + Flyway + integrationstestning). Jag är verkligen ledsen att du har några problem, så jag har skapat en enkel demo-app som visar användningen av biblioteket tillsammans med Spring Boot-ramverket. Nedan sammanfattade jag några grundläggande steg som du behöver göra.

Maven-konfiguration

Lägg till följande maven-beroende:

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

Flyway-konfiguration

Lägg till följande egenskap i din programkonfiguration:

# 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

Se vidare till att du inte använder org.flywaydb.test.junit.FlywayTestExecutionListener . Eftersom biblioteket har sin egen testkörningsavlyssnare som kan optimera databasinitiering och denna optimering har ingen effekt om FlywayTestExecutionListener tillämpas.

Exempel

Ett exempel på testklass som visar användningen av den inbäddade databasen:

@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. Ställer in Django för att använda MySQL

  2. INDIA, STD Code Finder Script i PHP, MYSQL, JQUERY

  3. Kombinera två kolumner och lägg till en ny kolumn

  4. Hur man installerar Oracle Linux Automation Manager (aka "Oracle Ansible Tower")