問題タブ [spring-test-dbunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - すべてのケースでまったく新しいスキーマを作成することは可能ですか?
すべてのケースでまったく新しいスキーマを作成する方法はありますか? @DatabaseTearDown アノテーションの使用はここでは当てはまりません。テストの期待の一部がそれらに依存しているため、ID ジェネレーターをリセットする必要があるためです (おそらくそれは悪い習慣です)。
テストの再配置に関する更新:
私の予想されるデータセットの1つに、次のものがあります。
term テーブルの oid は、生成された ID です。field_enum_element テーブルに 3 行が作成されていることを確認したいのですが、次のように、予想されるデータ セットから生成された ID を省略した場合:
spring-test-db-unit は、テーブルに 0 行があると考えています
アップデート:
testCreateEnumField.xml
testCreateEnumField.expected.xml
理想的には、テストとテスト ケースの間でシーケンスを削除できるようにしたいと考えています。
testng - Maven Surefire + TestNG + DBUnit:どのテストメソッドが失敗するかを指定しませんでした
DBUnit、Spring Test、TestNG、および Maven (Surefire に付属) を使用してテストを実行します。しかし、DBUnit のいくつかのアサーションが失敗したとき。彼らは、私のどのテストメソッドが失敗したかを指定しませんが、AbstractTestNGSpringContextTests.springTestContextAfterTestMethod のテストメソッドを指定します。
障害を特定するのを手伝ってくれませんか。失敗の原因を知る必要があります。ありがとう、
junit - JUnit、JUnit テスト ケース用の HSQLDB を使用した DBUnit。テーブルの作成方法 テストが開始される前に..使用しているHibernateまたは他のORMはありません
JUnitテストケース用のHSQLDBでDBUnitを使用しています。@DatabaseSetup を使用してテーブルを作成できません。ORM プロバイダーなしで DBUnit + HSQL を使用してテスト ケースを開始するときにテーブルを作成する方法
spring - Spring DBUnitは自動配線の前にデータセットを挿入します
メソッドでデータベースを照会する Bean がいくつかあります@PostConstruct
。したがって、自動配線が発生する前にデータベースの準備ができている必要があります。これは可能ですか?
これは私のテストクラスです:
これは、内部の DB をクエリする Bean です@PostConstruct
。
これは私がテストしたいクラスの例です
java - DBunit NoSuchTableException
テストのためにプロジェクトに dbunit と spring dbunit を含めようとしています。「src/test/java/dao」と「src/test/resources/dao」の 2 つのフォルダーがあります。
リソース ダオで
大文字と小文字(BRANDS、ブランド)で試してみましたが、まだ同じ問題があります。
メインJavaで
私のブランド エンティティ:
これは私の接続です:
dbunit を使用する前に、同じ問題がありました。
私のために問題を解決しました。schema.xml ファイルが空で、"brandsDao.create( new Brand() )" メソッドを使用してテスト メソッドの 1 つにブランドを追加すると、すべて正常に動作します。しかし、追加すると
私のschema.xmlに、この「NoSuchTableException: Brands」が表示されます。
また、これをコンテキスト xml に挿入する前に:
「スキーマnullにテーブル 'BRANDS'が見つかりませんでした」がありました。このエラーに関するさまざまな記事を試してみましたが、それでも何も役に立ちませんでした。dbunit がスキーマからデータを挿入しようとしているときに、データベースが作成されていないと思います。
いくつかのヒントやアドバイスに感謝します。
spring - Spring テストを使用してテスト内でトランザクションをコミットする
リポジトリの更新操作をテストしています
テスト ケースでは、エンティティをデフォルトのステータスで保存し、その後 updateStatusByEmail(CUST_EMAIL,STATUS_EMAIL_VERFIED ) を使用してエンティティを別のステータスに変更していますが、次の assert ステートメントが失敗しています。これは、テスト実行中の更新が後にコミットされるという事実によるものです。テストの完了....テスト内で変更をコミットする方法はありますか?
spring - TestExecutionListeners とは何ですか? また、その機能は何ですか?
私の知る限り、TestExecutionListeners@BeforeClass
は JUnit のメソッドのように機能します。私が理解していないのは、なぜ を使用する必要があるのかDependencyInjectionTestExecutionListener
、TransactionalTestExecutionListener
そしてDirtiesContextTestExecutionListener
を使用する必要があるのかということDbUnitTestExecutionListener
です。
通常、DbUnit がなくても、データベースを作成してデータを入力できます。なぜ突然これらのリスナーを使用しCRUD
て、データベースに対して何らかの処理を行う必要があるのでしょうか?
dbunit - DbUnit @DatabaseTearDown アノテーション: 特定のレコードのみを削除するには? (@DatabaseSetup アノテーションを使用して挿入されたもの)
@DatabaseSetup アノテーションを使用して挿入したレコードのみを削除しようとしています。
私のテストは次のようになります。
データセット.xml
おそらく、DatabaseOperation.DELETE を使用すると、「データセットの行に一致するデータベース テーブルの行を削除する」ことを意味します。しかし、テストを実行すると、テーブル内のすべてのデータが消去されます。
問題は、ティアダウンに使用されるxmlファイルのフォーマットだと思います。さまざまな形式を使用してみました:
まず、tear-down.xml で試してください
Tear-down.xml で 2 回目の試行
また、使用する形式に関係なく、テーブル内のすべてのデータが常に削除されます。単純にテーブル名をリストしていない、ティアダウンに使用される形式の例が 1 つも見つかりません。ほとんどの例では、セットアップと破棄の両方に同じ xml ファイルを使用しているようです。
しかし、これは可能でなければなりませんね?