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

MySQLJavaをテストするDbUnit

    DbUnitは実際のデータベースと連携できます。 xmlでのみ実行できます。

    まず、次のようにpom.xml smthに追加します(バージョンは別の場合もあります):

    <dependency>
        <groupId>org.dbunit</groupId>
        <artifactId>dbunit</artifactId>
        <version>2.5.0</version>
    </dependency>
    
    <dependency>
        <groupId>com.github.springtestdbunit</groupId>
        <artifactId>spring-test-dbunit</artifactId>
        <version>1.1.0</version>
    </dependency>
    

    次に、テストリソースディレクトリspring-config.xmlに追加します(私はpostgresqlを使用します)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    
        <bean id="dataSource"
              class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="org.postgresql.Driver" />
            <property name="username" value="****" />
            <property name="password" value="*****" />
            <property name="url" value="url-to-server-with-your-db"/>
        </bean>
    
        <bean id="jdbcTemplate"
              class="org.springframework.jdbc.core.JdbcTemplate">
            <constructor-arg ref="dataSource" />
        </bean>
    
    </beans>
    

    このxmlでテストする必要のあるクラスのBeanを追加します。

    テストクラスでアノテーションを追加します:

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = {"/spring-config.xml"})
    @TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
            DirtiesContextTestExecutionListener.class,
            TransactionalTestExecutionListener.class,
            DbUnitTestExecutionListener.class})
    

    テストメソッドの前に、テストの目標に応じて必要な注釈を追加します。例:

    @DatabaseSetup(value = "/testData.xml")
    @DatabaseTearDown(value = "/testData.xml")
    

    どういう意味ですか?データセットを含むxmlがあります。このファイルのデータは、テスト前にデータベースにプッシュされ(@DatabaseSetup)、テスト後にこれを再度実行できます(@DatabaseTearDown)-初期状態を復元するための同じファイルまたは必要に応じて別のファイル。これですべてです。

    >

    1. Railsschema.rbには新しいカスタムPostgres関数が含まれていません

    2. Perl OLE32 MSSQL dateadd 関数の結果でのカーソル タイプ変更エラー

    3. 複数のフォームと1つの処理ページ

    4. postgresqlの遅いORステートメント