sql >> Databáze >  >> RDS >> PostgreSQL

Vestavěný Postgres pro jarní bootovací testy

Jsem autorem knihovny embedded-database-spring-test, kterou zmínil @MartinVolejnik. Myslím, že knihovna by měla splňovat všechny vaše potřeby (PostgreSQL + Spring Boot + Flyway + testování integrace). Je mi opravdu líto, že máte nějaké potíže, proto jsem vytvořil jednoduchou ukázkovou aplikaci, která demonstruje použití knihovny spolu s frameworkem Spring Boot. Níže jsem shrnul některé základní kroky, které musíte udělat.

Konfigurace Maven

Přidejte následující závislost maven:

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

Konfigurace průletu

Přidejte do konfigurace aplikace následující vlastnost:

# 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

Dále se ujistěte, že nepoužíváte org.flywaydb.test.junit.FlywayTestExecutionListener . Protože knihovna má svůj vlastní posluchač provádění testu, který dokáže optimalizovat inicializaci databáze, a tato optimalizace nemá žádný účinek, pokud FlywayTestExecutionListener je použito.

Příklad

Příklad testovací třídy demonstrující použití vestavěné databáze:

@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. Uživatelské heslo hosta v 11i/R12

  2. Co hledat, pokud vaše replikace MySQL zaostává

  3. 10 technik pro vytváření formulářů v aplikaci Microsoft Access

  4. Escape řetězec v SQL Server, takže je bezpečné použít ve výrazu LIKE