220

大量のコードのテストケースを作成したいのですが、JUnit@Ruleアノテーション機能の詳細を知りたいので、テストケースの作成に使用できます。簡単な例を通してその機能の詳細な説明を与えるいくつかの良い答えまたはリンクを提供してください。

4

4 に答える 4

163

ルールは、テスト クラス内のすべてのテストに適用される追加機能を追加するために使用されますが、より一般的な方法です。

たとえば、ExternalResourceはテスト メソッドの前後にコードを実行し@Beforeます@AfterExternalResourceではなく@Beforeandを使用すると、@Afterコードの再利用が向上します。2 つの異なるテスト クラスから同じルールを使用できます。

設計は以下に基づいていました: JUnit のインターセプター

詳細については、JUnit wiki: ルールを参照してください。

于 2012-11-21T08:53:39.190 に答える
25

それがどのように機能するかの説明:

JUnit はテスト メソッドを Statement オブジェクトにラップしてステートメントをExecute()実行し、テストを実行します。次に、テストを実行するために直接呼び出す代わりにstatement.Execute()、JUnit はステートメントを注釈付きの TestRule に渡し@Ruleます。TestRule の「適用」機能は、テストを含むステートメントを指定すると、新しいステートメントを返します。新しいステートメントのExecute()メソッドは、テスト ステートメントの execute メソッドを呼び出す (または呼び出さない、または複数回呼び出す) ことができ、必要なことは何でも実行できますbefore and after

これで、JUnit には、テストを実行するだけでなく、最終的に Execute を呼び出す前に、それを他のルールに再度渡すことができる新しいステートメントができました。

于 2016-06-16T19:45:56.313 に答える