問題タブ [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.
spring-security - 春3テスト:@Autowiredの問題->コンテキストを読み込めません
次のテストクラスがあります。
このクラスでは、testCompoundServiceは正しく自動配線され、機能します(実際の問題が「無効」になっている場合)。セキュリティコンテキストには、次のカスタムクラスが含まれています。
そのクラスには、自動配線されたtestCompoundServiceが含まれています。
問題は、@AutowiredtestCompoundServiceがtestCompoundService自体の依存関係でTestCompoundPermission
失敗することです。StructureRepository(Spring Dataによって生成される)に依存するStructureServiceに依存します。例外は次のとおりです。NoSuchBeanDefinitionException
TestCompoundService
アプリケーションコンテキストでコメント@Autowired
するとTestCompoundPermission
、正しく読み込まれます(もちろん、testCompoundServiceがnullであるため、一部のテストはNullPointerExceptionで失敗します)。
明らかにテストクラスでは、正確な正気のBeanのロードが完全に正常に機能するため、これは奇妙です。完全を期すために、コンストラクター引数を使用して試して、@Autowiredを削除しました。同じ結果。私にとっては、2つのコンテキストが完全に分離されているように見えるため、セキュリティコンテキストはアプリケーションコンテキストからBeanにアクセスできません。どうすればこれを解決できますか?
編集:
スタックトレースの最後の部分(スタックトレース全体が巨大です!)
編集2:
これを見つけました:
それはまさに私が抱えている問題です。<jpa:repository />
ただし、有効な要素ではなくなったため、回避策は機能しません。
java - jpaスプリングテストフラッシュエラー
Product
私のデータベースには、そのようなフィールドを持つテーブルがあります。
description
クラスで定義されていProductLocalization
ます。
に追加columnDefinition = "LONGTEXT"
した後
そのクラスでは、必要に応じて255マークより長い説明を設定できますが、2つのテストが以前に行で失敗し始めましproductDao.saveAndFlush(product)
たproduct.setDescription(descriptions)
。重要なのは、テストではなく、アプリケーションでその操作を行うと、すべてが正常に機能することです。テストのみが問題を引き起こします
saveAndFlush()
パッケージから取得した方法ですorg.springframework.data.jpa.repository
エラーは両方のテストで同じです。
テストのコードは次のとおりです。
と
ここで何が問題になっていますか?どうすれば修正できますか?
spring-test - DeferredResult を返す Spring MVC コントローラーの単体テスト
DeferredResult オブジェクトのリストを返す Spring 3.2.1 コントローラーをテストしようとしています。次のテストをガイドとして使用していましたが、このテストは統合テストであり、単体テストではないのでしょうか?
単体テストを実行すると、次のようになります。
原因: java.lang.UnsupportedOperationException: No async support in a pre-Servlet 3.0 runtime
このエラーを調査する際に、必要なサーブレット 3.0 API に含まれる非同期サポートに関係していると考えていますが、これは理にかなっていますが、テストに合格するには、どの Maven 依存関係を含める必要がありますか? リンクにあるような DeferredResultsの成功したスプリング mvcコントローラー単体テストを書いた人はいますか? (繰り返しますが、上記のリンクは単体テストであり、統合テストではないと想定しています)。
ありがとう
spring - スプリング テスト コンテキストを使用してデータを初期化する
TestExecutionListener インターフェイスを実装してテスト データを初期化し、beforeTestClass と afterTestClass を使用してデータをロード/破棄することが可能かどうか疑問に思っていました。テスト データはフラット ファイルで利用できます。データ ファイルの場所をテスト クラス アノテーションの一部として指定したいと考えています。
上記の疑似コードでは、InsertTestDataExecutionListener が TestExecutionListener インターフェイスを実装し、beforeClass メソッドでアノテーションからデータセットの場所を取得します。TestContext を使用してプロパティ「testdata」の内容をセットアップする方法を見つけようとしています。
作業を行うためにリフレクションを使用する必要がありますか?
spring-mvc - Spring-mvc + MockMvc + junit の結果は 200 ですが、404 にする必要があります
私はスプリング テスト フレームワーク バージョン 3.2.1.RELEASE を使用し、具体的には MockMvc オブジェクトを使用してコントローラーをテストします。
ただし、問題は、MockMvc オブジェクトが存在しない html ページで実行すると、ステータス 200 が返されますが、ブラウザには 404 ステータスが表示されるということです。ページが存在しないため、これは正しいことです。404 ステータスを確認するにはどうすればよいですか? (それが私が期待するステータスなので)
テスト ケースのコントローラー:
リゾルバ:
ディレクトリ:
rest - テスト時に RESTEasy リソース内に Spring Bean を注入する
TJWSEmbeddedJaxrsServer
ユニット/統合テスト内で、RESTEasy 組み込みサーバーを使用するか、テスト目的でリソース呼び出しPOJOResourceFactory
をシミュレートしようとしています。MockHttpRequest.get("/data")
私の問題は、サーバーまたはリソース ファクトリの使用に基づいて、リソース内に正常に注入される Spring Bean の null 以外のインスタンスを持つことができないことです。
明確にするためのコードを次に示します。事前に感謝します。
Spring アプリケーション コンテキスト:
SimpleResource.java :
単体テスト :
java - TestExecutionListener の使用時に Spring テスト インジェクションが機能しない
TestExecutionListener
カスタムを と組み合わせて使用SpringJUnit4ClassRunner
して、テスト データベースで Liquibase スキーマのセットアップを実行したいと考えています。私TestExecutionListener
は正常に動作しますが、クラスでアノテーションを使用すると、テスト対象の DAO の注入が機能しなくなり、少なくともインスタンスは null になります。
リスナーはかなり単純です。
ログにエラーはありませんNullPointerException
。私のテストだけです。TestExecutionListener
my の使用がオートワイヤリングまたはインジェクションにどのように影響するかわかりません。
spring - 春のテストはテスト後にロールバックしません
Spring テストと H2 メモリ データベースを使用した一連の統合テストがあります。テストのたびに h2 データベースがロールバックされないことに気付きました。
これは私の設定です:
次に、AbstractTest があります。
春の設定:
そして、テストに固有の config.properties:
そして、テストされているサービス:
spring - テスト アプリケーションと組み込みの tomcat の間で Spring コンテナーを共有する
cucumber-jvm を使用して、アプリケーションに統合テスト レイヤーを記述しています。私たちが見つけた課題の 1 つは、テストと Web アプリケーションの間でデータベースを管理することです。
典型的なシナリオは、シナリオの特定のステップでいくつかのエンティティを永続化し、次にユーザー インターフェイスでいくつかのアクションを実行して、さらに多くのエンティティを永続化することです。最後に、データベースをクリーンアップします。cucumber-jvm テストは 1 つの jvm で実行され、Web アプリケーションは別の jvm で実行されているため、(少なくとも私が認識している方法では) トランザクションを共有できないため、データベースを手動でクリーンアップする必要があります。
私が最初に考えたのは、cucumber-jvm テストと同じ JVM で組み込みのメモリ内データベース (HSQLDB) から実行される組み込み Tomcat サーバーを使用することでした。このようにして、単一のスプリング コンテナーを共有し、拡張することで、すべてのオブジェクトを取得できる単一のトランザクションを共有できる可能性があります。
私の最初のテストでは、Spring が 2 回ロードおよび構成されているように見えます。1 回目はテストが開始されて cucumber.xml が読み取られるとき、2 回目は組み込みの tomcat が開始されて Web アプリケーションがその applicationContext.xml を読み取るときです。これらは 2 つの完全に別のコンテナーにあるように見えます。これは、1 つのコンテナーで指定されたオブジェクトを別のコンテナーで解決しようとしても解決されないためです。構成を複製すると、同じ ID を持つ重複した Bean に関するエラーが発生します。
テスト アプリケーションと組み込みの tomcat の両方に同じコンテナーを使用するように Spring に指示する方法はありますか?
Spring 3.2.2.GA と Embedded Tomcat 7.0.39 (両方のライブラリの最新バージョン) を使用しています。
私はクレイジーですか?技術的な詳細を提供する必要がありますか? 間違った用語を使用している場合はお詫び申し上げます。
ありがとう
ps 私の問題に精通しているようで、私が試している解決策に代わる解決策を提案できる場合は、お知らせください。