問題タブ [springjunit4classrunner]

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 投票する
3 に答える
14788 参照

spring-boot - スプリング ブート プロジェクトで SpringJUnit4ClassRunner を使用して powermockrule を実行できない

Spring Test Runnerでテストし(実際のアプリケーションコンテキストを取得できるようにするため)、静的メソッドをモックする必要があるSpring Bootプロジェクトがあります。

テストを実行すると、次のエラーメッセージが表示されました。

これを修正する方法は?ありがとう!

0 投票する
2 に答える
5826 参照

java - 新しい Spring Context で JUnit テストを開始する

を使用して 2 つの単体テスト クラスを作成しJUnit4ました。両方とも別々に正常に実行されますが、(たとえば mvn テストによって) 次々に実行すると、2 番目のテストは失敗します。

2 番目のテストが失敗する理由は、最初のテストが最初のテストで Bean を変更したためです。2 番目のテストでは、この Bean の新しいインスタンスを使用します。

単体テストには、単体テスト クラスごとに新しいコンテキストを指定する必要があります。Spring には、無効にしたいコンテキスト キャッシングのファースト クラス サポートがあります。単体テスト クラスごとSpringに新しいものを再起動するように構成するにはどうすればよいですか?Context

私のテストクラスは次のように構成されています:

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

java - クラスを移動または削除した後、SpringJUnit4ClassRunner で junit テストを実行すると初期化エラーが発生する

クラスを移動または削除すると、多くの場合、クラスを移動または削除した後、SpringJUnit4ClassRunner で junit テストを実行すると、initializationError が発生します。

例外:

私のテストクラスは次のようになります。

gradle task cleanTest testでテストを実行します

IntelliJキャッシュを無効にして再起動しようとしましたが、役に立ちませんでした。

どうすればこの例外を取り除くことができますか?

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

java - @RunWith(SpringJUnit4ClassRunner.class) を使用すると、JUnit 4.12 が assertEquals に対して NoSuchMethodError をスローするのはなぜですか?

最近の Web サービスの 1 つの変更により、テストで autowired Bean を使用する要件が追加されましたが、誰もが提案した @RunWith(SpringJUnit4ClassRunner.class) ルートを取得できませんでした。その注釈をクラスに追加すると、assertEquals メソッドに対して「NoSuchMethodError」を受け取ります。

pom.xml の依存関係:

テスト中の方法:

テスト クラス:

スタックトレース:

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

spring - 春にモッククラスをセットアップできません

一連の統合テストを行うプロジェクトに取り組んでいます。これらのテストの 1 つは、サード パーティ ベンダーに対して多くのネットワーク呼び出しを行ったクラスを自動配線しました。テストでこれらの呼び出しを行いたくなかったため、チームは testApplicationContext.xml Spring 構成ファイルを介してこのクライアントをモックアウトしました。

統合テスト クラス:

testApplication.xml の定義:

mock-beans.xml の定義:

これはセットアップで正常に機能し、テストとして実行すると、MockThirdPartyClient のインスタンスが Spring Bean に自動配線されます。

ただし、最近、同じパッケージに別のサービスの新しいモックを追加しましたが、ロードできません。エラーが発生します:

クラスパスリソース [mock-beans.xml] で定義された「addressService」という名前の Bean のクラス [tst.mycompany.mocks.MockAdressService] が見つかりません。ネストされた例外は java.lang.ClassNotFoundException: tst.mycompany.mocks.MockAdressService です

更新されたmock-beans.xmlは次のとおりです。

機能する最初の依存関係を自動配線する方法は次のとおりです。

@Autowired ThirdPartyClientServiceI client;

そうでないもの:

@Autowired AddressServiceI addressService;

すべてのスペルを再確認しましたが、すべて一致しているので、これが機能していないのはおかしいです。何かが正しくキャッシュされていない可能性があると思いました...しかし、すべてを更新してクリーンアップしましたが、サイコロはまだありません。

これらのモックのどちらにも注釈 FWIW はありません。モック アウトするように設計されたサービスのインターフェイスを実装するだけです。どちらもフォルダの下にありsrc/test/javaます。

問題のスタックトレース:

bin フォルダーを確認したところ、コンパイルされたクラスがそこにあります。

0 投票する
2 に答える
4780 参照

spring - spring bootアプリケーションのJunitテストでappliction.propertiesのプロパティが利用できないのはなぜですか?

私はスプリングブートアプリケーションを持っています。Junit テストを書いています。application.properties (src/main/resources/application.properties で定義) と AppConfig で構成された Status Bean (src/main/java/hello/AppConfig.java) から値を注入しようとしています。Bean が自動配線されていることがわかります (デバッガーを介して null ではありません) が、値が設定されていません。

これがapplication.propertiesです

src/main/resources/application.property s

src/main/java/hello/AppConfig.java

//ステータスは、名前とバージョンのフィールドを持つ単純な pojo です

src/test/java/hello/GreetingControllerTests.java

init メソッドでデバッガーを設定したところ、正しい値が設定された BeanappNameとBean の両方が注入されていないことがわかりました。statusただし、ステータス Bean は注入されます。値が設定されていないだけです。