大量のコードのテストケースを作成したいのですが、JUnit@Rule
アノテーション機能の詳細を知りたいので、テストケースの作成に使用できます。簡単な例を通してその機能の詳細な説明を与えるいくつかの良い答えまたはリンクを提供してください。
4 に答える
ルールは、テスト クラス内のすべてのテストに適用される追加機能を追加するために使用されますが、より一般的な方法です。
たとえば、ExternalResourceはテスト メソッドの前後にコードを実行し@Before
ます@After
。ExternalResource
ではなく@Before
andを使用すると、@After
コードの再利用が向上します。2 つの異なるテスト クラスから同じルールを使用できます。
設計は以下に基づいていました: JUnit のインターセプター
詳細については、JUnit wiki: ルールを参照してください。
それがどのように機能するかの説明:
JUnit はテスト メソッドを Statement オブジェクトにラップしてステートメントをExecute()
実行し、テストを実行します。次に、テストを実行するために直接呼び出す代わりにstatement.Execute()
、JUnit はステートメントを注釈付きの TestRule に渡し@Rule
ます。TestRule の「適用」機能は、テストを含むステートメントを指定すると、新しいステートメントを返します。新しいステートメントのExecute()
メソッドは、テスト ステートメントの execute メソッドを呼び出す (または呼び出さない、または複数回呼び出す) ことができ、必要なことは何でも実行できますbefore and after
。
これで、JUnit には、テストを実行するだけでなく、最終的に Execute を呼び出す前に、それを他のルールに再度渡すことができる新しいステートメントができました。