sql >> データベース >  >> RDS >> PostgreSQL

SpringBootテスト用のEmbeddedPostgres

    私は@MartinVolejnikによって言及されたembedded-database-spring-testライブラリの作成者です。ライブラリはすべてのニーズ(PostgreSQL + Spring Boot + Flyway +統合テスト)を満たす必要があると思います。ご不便をおかけして申し訳ございません。ライブラリをSpringBootフレームワークと一緒に使用する方法を示す簡単なデモアプリを作成しました。以下に、実行する必要のあるいくつかの基本的な手順を要約しました。

    Maven構成

    次のMaven依存関係を追加します:

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

    フライウェイ構成

    次のプロパティをアプリケーション構成に追加します。

    # 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
    

    さらに、org.flywaydb.test.junit.FlywayTestExecutionListenerを使用しないようにしてください。 。ライブラリにはデータベースの初期化を最適化できる独自のテスト実行リスナーがあり、FlywayTestExecutionListenerの場合、この最適化は効果がないためです。 適用されます。

    組み込みデータベースの使用法を示すテストクラスの例:

    @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. postgresqlでのROLLBACKイベントトリガー

    2. MySQLは、あるデータベースから別のデータベースに挿入します

    3. 自動車修理店のデータモデル

    4. SQL Server(T-SQL)で現在の日付形式を変更する方法