質問: JUnit4のテストクラスに@Ruleというアノテーションがありますが、これは何でしょうか? また、どういった使い方をするのでしょうか?
回答: RuleはJUnitの拡張フレームワークで、テスト実行時の共通処理を設定する機能です。 Ruleを使うことで、共通で使う処理を独立したクラスに定義することができ、テスト実行時のメタデータにもアクセス可能です。 JUnitで提供されている汎用的なRuleがいくつかありますので調べてみると良いと思います。 (**独自にカスタムRuleを作ることもできます。**) 以下はTimeoutを使い、長時間かかるテストを失敗とみなすテストの例です。 (例) ``` public class TimeoutExTest { @Rule public TestRule timeout = new Timeout(100);//ルールの宣言 @Test public void 長時間かかるメソッド1() { //メソッド呼び出し } @Test(timeout = 10) public void 長時間かかるメソッド2() { //メソッド呼び出し } } ```