問題タブ [junit-runner]

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

junit - jUnit ランナーのリストを実行する

本質的に次のようなテストスイートがいくつかあります

(これは実際のテストではありませんが、本質的に、各@Testメソッドは 1 つのメソッドのみを呼び出します)

したがって、私の考えでは、jUnit Runner の a を受け入れるカスタム BlockJUnit4ClassRunner に使用できるということ@RunWithでしList

これはどのように達成されますか?または、それを行うより良い方法はありますか?

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

java - What is the logic of @Rule(JUnit) declaration and assignment in a Groovy class

Trying some variants of rules creation in a groovy file, I have come to the thought, that @Rule doesn't describe DECLARATION, but ASSIGNMENT. So, the runner, when loading the test, tries every rule for the correct assignment.

But, then I came to some paradoxial variants:

What is the logic of it?

It seems as a bug in Runner - the runner makes an excessive check before constructing the test.

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

java - JUnit テストでスタティック ライブラリ クラスをプロキシするカスタム ClassLoader

質問
custom をClassLoader使用して、静的コンテキストから適切に利用されるクラスの実装を提供することは可能ですか?

背景
私は、静的クラスを使用して依存関係を結び付けることを推奨するフレームワークを使用しています。
それはこのように動作します..

ご想像のとおり、これをテストするのは悪夢であり、JUnit からは不可能なアクティブなフレームワーク環境内から呼び出されない限りFrameworkProvidedDependencyResolver(実際の名前ではありません) をスローします。NullPointerException

私がやりたいClassLoaderことは、JUnit テストで使用できるカスタムを提供して、FrameworkProvidedDependencyResolverモックの依存関係などを結び付けるカスタムを提供することです。

わかりましたので、ユニットテストを次のように表示したいと思います。

MyTestRunnerカスタムを使用することを選択した場所ClassLoaderです..

@AutomatedMikeに感謝します。

わかりましたので、テストのためにカスタムの依存関係リゾルバーとMyClassLoader交換する機会を得ることができるミックスに滑り込みます..FrameworkProvidedDependencyResolver

これで、フレームワークによって提供されるものではなく、カスタムをロードできるようFrameworkProvidedDependencyResolverになりました..しかし、どうすればそれを行うことができますか?

「FrameworkProvidedDependencyResolver」のリクエストを無視して、別のクラス、たとえば「MyMockFrameworkProvidedDependencyResolver」を返すことができます。それは問題ありませんが、静的コンテキストから をMyClass.initialize呼び出すと、 . 理にかなっています。FrameworkProvidedDependencyResolverNoClassDefFoundError

MyMockFrameworkProvidedDependencyResolver本物と同じ名前FrameworkProvidedDependencyResolverを付けて、別のパッケージに入れることができます(例:i.hate.my.framework.FrameworkProvidedDependencyResolver)。MyClassは実際FrameworkProvidedDependencyResolverのパッケージ、およびすべてを具体的に見ているため、これも機能しません。

クラスに実際の名前を付けてFrameworkProvidedDependencyResolver、フレームワークが提供するものと同じパッケージに入れることができます..しかし、今ではClassLoader. JVMは2つによって混同され、クラスパスによって適切な方がロードされます。おそらく私のものです。ここでの問題は、これがすべてのテストに適用されるようになったことです。私が探している解決策ではありません。

最後に、 は ではないため使用できProxyませFrameworkProvidedDependencyResolverinterface

わかりました、私の質問をもう一度言います:静的コンテキストから適切に利用される
custom を使用して、クラスの実装を提供することは可能ですか? ClassLoaderおそらく、一意の名前を持つ独自の一意のパスにクラスを作成し、それをロードするときに編集して、上書きしようとしている予想されるパスと名前で JVM に表示されるようにすることはできますか? もちろん、他のソリューションも大歓迎です。

0 投票する
3 に答える
2815 参照

java - 複数の JUnit テスト クラスのセットアップ ステップの追加

プロジェクトには、それぞれが複数のテスト メソッドを含む複数のテスト クラスがあります。これらの各テスト クラスを実行する前に、データベース接続を作成したいとします。個々のテスト クラス、複数のテスト クラス、またはテスト スイートを実行するかどうかに関係なく、接続を確立する必要があります。最も重要なことは、複数のテスト クラスの場合、このステップを何度も呼び出すべきではないということです。実行しているテスト クラスの数に関係なく、接続は 1 回だけ行う必要があります。

この問題に取り組むための設計や JUnit のヒントを提案していただけますか?

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

java - JUnit "Run as-> JUnit" と "Cover as -> Junit" の動作が異なるのはなぜですか?

JUnitテストがあります。しかし、「Run as -> JUnit」を使用すると成功しますが、「Cover as -> JUnit」を使用すると失敗します。何故ですか?コードには確かに問題があります。コードでは、大きすぎるメソッド (64KB 以上) を含むレガシー コード (変更するアクセス権がありません) を使用しています。「Run as -> JUnit」がこの問題を明らかにできないのはなぜですか?

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

junit - テストランナーから JUnit テスト結果を取得するには?

オーバーライドされた runChild() メソッドを使用して、独自のテスト ランナーを実装しました。

テスト ケースの実行前後にグローバルな事前アクションと事後アクションを実行する必要があるため、このメソッドをオーバーライドします。事後アクションは、テスト ケース実行の失敗/成功に依存します。実行結果を取得するにはどうすればよいですか?