2

JUnit で最初の単体テストを書き始めたところ、小さな問題に遭遇しました。単体テスト内で、MySql データベースに新しいデータを挿入しています。情報を追加した後、次の単体テストで同じ情報を削除します。

私のテーブルIDは自動インクリメントであり、ユニットテストを実行するたびに、次のIDの値が1ずつインクリメントされます.

@AfterClass アノテーションを使用して新しいメソッドを実装し、単体テストの完了後にインクリメント値をリセットできるようにしました。私はこのクエリを使用しました:

entityManager.createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1");

新しい情報を MySql データベースに直接追加すると、次の ID の値が希望どおりになりません (テーブルの最後の ID 値 +1)。

ただし、データベースで直接 sql-query を実行すると、クエリは機能します。

私の質問: 単体テスト中にこの種のクエリを実行することは不可能ですか? それとも、私はこれを完全に間違った方法で見ていますか。

私はJava、春、休止状態、jpa、junitを使用しています

前もって感謝します!

4

1 に答える 1

6

クエリを作成しましたが、実行するのを忘れました:

entityManager
    .createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1")
    .executeUpdate(); 
于 2012-05-03T13:56:57.560 に答える