問題タブ [spring-junit]

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.

0 投票する
0 に答える
392 参照

java - Qualifier Annotation に基づいて Bean をプログラムで Autowire する方法

Junit5 では、Extensions を使用すると、BeforeAll メソッドと AfterAll メソッドを実行できます。また、Annotations を使用してテストの動作を変更しようとしています。ただし、これらの注釈を @Qualifiers としても Bean の初期化に使用しており、テストで識別された注釈を使用して Bean を初期化できるようにしたいと考えています。

SpringExtensionJunit5 で取得できることがわかっている修飾子アノテーションを使用して、実行時にプログラムで Bean を初期化したい

これを使用して Bean 初期化ファクトリーを呼び出すことができますが、修飾子である注釈を使用して Bean を初期化する方法がわかりません。修飾子によって識別される同じタイプの複数の Bean があります。

私が立ち往生している問題は

現在、AutoWired を使用して Type of user credentials を静的に初期化してから、スイッチケースを使用して事前に初期化された UserCredential を使用している注釈に基づいています。

アイデアは、テスト クラス@ExtendsWith(ResetPortal.class)を用意し、リセット (テスト前のログイン) に使用できるユーザーのタイプを示すことです。Qualifier Annotations を使用してそれを示しています。これはExtensionContext、Junit5beforeAllメソッドから抽出できます。

さらに、UserCredentialユーザーのタイプごとに 1 つのクラスとそのクラスの複数の @Bean 定義があります。

コード

カスタム修飾子アノテーション User1Qualifier を使用した Bean 定義

私のカスタム修飾子は以下のとおりです(複数あります)

現在、テストでは、ResetPortal が取得する同じ注釈を使用しようとしています。

Junit5 がクラスを初期化し、そのマネージド インスタンスを呼び出すため、ResetPortal クラスは Autowired 要素を個別に定義する必要があります。

0 投票する
1 に答える
115 参照

java - restclienttest を使用して resttemplate 呼び出しをモックできない

RestTemplatewhich usesをモックしたいRestTemplateBuilder。したがって、私は使用してrestclienttestいます。

残念ながら、私はresttemplate呼び出しをモックすることはできません。がSup supExpected = myService.getDetails("1234")呼び出されると、代わりに完全なバックエンド呼び出しが実行され、私が要求した結果が得られます。

カスタム json 文字列「SD」を生成する代わりに、実際の G​​ET 呼び出しを実行し、バックエンドから応答を返します。

これが私のjunitコードです:

私のコードの何が問題なのか、誰か助けてもらえますか?