JUnit4.8 のテストは、ぐるぐる巻きにされた Statement を転がすゲームです。 ご存知 @Before, @After, @BeforeClass, @AfterClass も @Test も @Rule も全部 Statement に変換されて、それらの Statement でテストメソッドを丁寧にラッピングしてから実行します。 @Rule はテストコードで自由に追加できますが、MethodRule の実装時*1に base.evaluate() を忘れると、全テストが無条件に通ったりします。前述の通り @Rule も Statement になり、その内側にテストメソッド他の Statement を持つ感じになるため、内側を呼ばなければテスト自体が実行されない…つまりエラーになりようもないのです。 ここまでを前提知識として、ちょっと応用。 @Rule を使うと、テストメソッ