問題タブ [spring-test]
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.
hsqldb - Spring Test:import.sqlファイルからhsqldbに16進値を挿入できません
SpringとHibernateでJUnitテストを実行しています。PCでMySqlデータベースを使用すると正常に動作します。このテストを任意の環境で起動するために、仮想データベースhsqldbを設定しました。そして、import.sqlファイルからデータを挿入します。ここに私の構成:
およびpersistence.xml:
したがって、テストクラスを起動すると、(import.sqlファイル内の)データがデータベースに挿入され、テストが実行されます。私の問題は、データベースに挿入されていない16進値がいくつかあり、その理由がわからないことです。import.sqlの16進データの例を次に示します。
このデータはMySqlデータベースでLONGBLOBとして定義されており、このタイプはHSQLDBでサポートされていないと思います。
テストクラスから取得するために、このデータを挿入するにはどうすればよいですか?
事前にどうもありがとうございました!オーレア
spring - SimpleJdbcTestUtils.executeSqlScript()を使用する場合のHSQLDBトリガーステートメントエラー
現在、SQLスクリプトをロードしてHSQLデータベースを作成しようとしています。これは、次のコードを使用して実行されます。
スクリプトには、トリガーのcreateステートメントが含まれています。
このコードを使用してテストを実行すると、次のエラーが発生します。
私はSpring3.0.5を使用しており、HSQLDB(ドライバー、...)のバージョンは1.8.0.10です。
誰かがこの問題を抱えたことがあるか、これを解決する方法を知っていますか?
(また、すべてを1行に配置し、SQLを別のファイルに配置し、セミコロンを削除しました...)
どんな助けでも大歓迎です。よろしくお願いします!
ウェンディ。
java - Spring Test を使用して SQL スクリプトを実行すると、変更がコミットされます
Spring を使用して JUnit テストで SQL スクリプトを実行しようとしています。スクリプトは、テスト用のデータを設定するために使用されています。ただし、スクリプトが実行されると、スクリプト内の INSERT は各テストの後にコミットされます。Spring のドキュメントには、DDL によるロールバックは期待できないと書かれていますが、スクリプト内のすべてが DML です。含まれているのは、INSERT ステートメントと、最後の挿入 ID の取得 (SET @blah = LAST_INSERT_ID()) だけです。
何か間違った設定をしていますか? これを MySQL データベースに対して使用しています。構成は次のとおりです。
これが、いくつかの調査に基づいて起こっていると私が思うことです。executeSqlScript への最初の呼び出しは、別のトランザクションで実行されています。Spring の SimpleJdbcTemplate.update メソッドは、executeSqlScript によって呼び出されます。これは、接続プールから取得される JDBC 接続にスコープが設定されているため、DB への後続のアクセスで同じ接続を取得することが保証されていないため、同じトランザクションで実行されることを保証できません。
TransactionManager または (Hibernate Session Factory) を介してすべての DB 操作を行う場合、内部がトランザクションをスコープする方法のために機能します。ここでの私のオプションは次のとおりです。
SimpleJdbcTemplate.update を実行する方法と、同じトランザクションでテストしている後続の実際のコードを理解してください。これはできると思いますが、これまでの努力は実を結びませんでした。
SessionFactory を介してすべてのテスト データの設定を行います。したがって、JDBC を介して単純な SQL スクリプトを実行する代わりに、モデル オブジェクトにデータを入力し、Hibernate DAO を介して永続化します。
私はここで正しい軌道に乗っていますか?誰でもこれ以上のガイダンスを提供できますか?
java - Springを使用したJUnitテストはできません
私のテストは次のように定義されています。
私の意図は、このテストを実行して失敗することです。
私のテストの春の構成ファイルは次の場所にあります。
Spring構成ファイルの内容は次のとおりです。
テストを実行すると、次の例外が発生します。
私は次の春のバージョンセットでMavenを使用しています:
これについての助けをいただければ幸いです。
編集:
誰かがスプリングコア依存関係も追加することを提案しました。それが違いを生むかどうかは疑問ですが、私はそれを追加しました。例外は次のようになります。
java - Spring統合テスト-構成内のトランザクション宣言はテストに違反しているようです
Spring MVC + Hibernate + MySQLの「HelloWorld」アプリで遊んでいます。現在、jUnitを使用してSpringMVCコントローラーで次の統合テストを実行しようとしています。
ただし、そうするたびに、次の例外が発生します。
以前は実際のデータアクセスを実装しておらず、テストは正常に合格しましたが、DAOのHibernate実装をSpringトランザクション管理とともに追加したため、このエラーが発生します。アプレットコンテキスト構成xmlの関連部分は次のとおりです。
構成からを削除すると<tx:annotation-driven />
、上記の例外は発生しませんが、ハンドラーで発生するデータアクセス呼び出しに開いているトランザクションがないため、テストは失敗します。アプリはテスト以外では問題なく動作します。問題が何であるかについて誰かが何か考えを持っていますか?
java - testng の @BeforeTest でスプリング コンテキストにアクセスする
私のメソッドでいくつかの Web スコープをスプリング コンテキストに登録したいと思います@BeforeTest
。しかし、春のコンテキストはまだnull
その時点にあることがわかりました。
ただし、に変更すると、テストは正常に実行され@BeforeMethod
ます。@BeforeTest
テスト メソッドごとにスコープ登録コードを繰り返したくないので、 のコンテキストにどのようにアクセスできるのだろうか。
以下は私のコードスニペットです。
テスト実行時のエラーメッセージは次のとおりです。
junit - Mockito NotAMockException が明らかに
Junit とともに Spring Test フレームワークを使用しています。テストケースに使用するSpringコンテキストファイルがあります:
restTestContext.xml 内で、タイプ AWSMailService の Bean を作成しています (これは実際にはモックです)。
テスト内で sendEmail() メソッドが mailService モックで呼び出されたことを確認しようとしていますが、オブジェクトで toString() を呼び出すと、それがモックであることがわかりますが、NotAMockException が発生します。
これを引き起こしている可能性のあるアイデアはありますか?
ありがとう
spring - AutowiredがSpringJunitテストで失敗する
私の春のアプリケーションのためにJUnitテストを書いています。私はこれが初めてなので、動作することがわかっているDAOクラスの単体テストを作成することから始めてみました(JBossで実行しました)。ただし、Eclipseでユニットテストとして機能させることはできません。「Beanの作成中にエラーが発生しました...フィールドを自動配線できませんでした:NoSuchBeanDefinition 」が表示され続けます。
StackOverflowや他のサイトでこれに似たエラーが発生しましたが、常に構文エラーであるか、インターフェイスではなくインターフェイスの実装を自動配線しようとしました。コードにこれらのエラーは表示されません。
プロジェクトに付属のSpring構成とは別にSpring-test.jarをダウンロードしました。どちらもSpring2.5のものなので、問題になるとは思いません:/
EclipseにはJUnit4.8がバンドルされていますが、Spring Unit Testはそれで動作しないため、JUnitを4.4を使用するようにダウングレードしました。
考慮すべきことが1つあります...単体テストのコードを見ると、2つのフィールドが自動配線されていることがわかります。テストしたいクエリサービスのSimpleJdbcTemplateです。さて、DrugDaoとそれへのすべての参照を削除すると、SimpleJdbcQueryは問題なく自動配線されます。
レビューのスタックトレースは次のとおりです。
インターフェースと実装は次のとおりです。
DrugDao.java
SpringJdbcDrugQuery.java
DrugDaoTest2.java(最初は別のソースフォルダーにあり、次に同じフォルダーで試しました)
common-test.xml
spring - spring-test-mvc を使用した単体テスト REST コントローラー
Spring 依存関係を Spring 3.1.1.RELEASE にアップグレードしました。単純なコントローラーの単体テストにspring-test-mvcを使用しようとしています。Spring REST Controller Test で使用されている手法を spring-test-mvc フレームワークで実行していて、その人にはうまくいったようですが、これまでのところ成功していません。テスト コンテキスト ファイルに欠けている重要な構成があると思います。
エラーは発生しません。機能していないことがわかっている理由はHello World
、印刷されないためです(コントローラーを参照)。ここで何が欠けていますか?
コントローラ:
テスト クラス:
restAPITestContext.xml: