2

私の単体テスト構成は次のとおりです。JUnit、DBUnit、Spring。

私のSpringコンテキストでは、組み込みデータベース

<jdbc:embedded-database id="dataSourceSpied">
    <jdbc:script location="classpath:test_ddl.sql"/>
</jdbc:embedded-database>

私の単体テストには、次のクラスレベルの注釈が付いています。

@ContextConfiguration(locations = "classpath:/test-context.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
        TransactionDbUnitTestExecutionListener.class,
        DbUnitTestExecutionListener.class})

私のテスト スキーマには次のフラグメントがあります。

CREATE TABLE test(
  id  BIGINT GENERATED BY DEFAULT AS IDENTITY,
  name  VARCHAR(255) NOT NULL,
  ...
);

注釈は@Transactional、単一の単体テスト メソッド中に行った変更をロールバックしますが値はクリアしませんid! 自動生成されidた値はリセットされないため、単体テストは実行される順序に依存します!

テスト中にSpringで自動生成されたHSQLDBのdbフィールドをリセットするには?


おそらくtrucateコマンドが役立つでしょうか?

4

1 に答える 1