22

junit4 を使用してスプリング サービス レイヤーをテストする次の問題は、次のとおりです。すべての @Test メソッドの前に 1 回だけデータベースにデータを入力するスクリプトを呼び出す方法: すべての @Tests の前にこれを 1 回実行したい:

JdbcTestUtils.executeSqlScript(jdbcTemplate(), new FileSystemResource(
"src/main/resources/sql/mysql/javahelp-insert.sql"), false);

GenericServiceTest クラス(テストクラスによって拡張)で @PostConstruct を使用しようとしました。@PostConstruct は、すべての @Test メソッドの前に毎回呼び出されることが判明しました。興味深いのは、GenericServiceTest の @Autowired アノテーションが付けられたメソッドでさえ、すべての @Test メソッドの前に呼び出されることです。

すべてのテスト クラスの前にデータベースにデータを入力するのではなく、スプリング テストの起動時に 1 回だけ入力します。

春のテストフレームワークとjunit4ですべての@Testメソッドの前に上記のメソッドを1回だけ実行する方法は?

ありがとうございました!

4

5 に答える 5

11

Springs 組み込みデータベース サポートを使用する

<jdbc:embedded-database id="dataSource">
    <jdbc:script location="classpath:myScript.sql"/>
    <jdbc:script location="classpath:otherScript.sql"/>
</jdbc:embedded-database>

またはSprings初期化データベースサポート

<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:myScript.sql"/>
    <jdbc:script location="classpath:otherScript.sql"/>
</jdbc:initialize-database>

@http ://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html#jdbc-embedded-database-supportを参照

于 2013-07-07T09:29:19.647 に答える