Již dvakrát jsem psal o tom, jak na inter­ceptor JUnit testů. Mojí motivací byly screenshoty Selenium testů, ale jen když selžou. Prvním způsobem je vlastní anotace @AfterFailure, což mimo jiné vyžaduje i vlastní test runner. V pozdější verzi JUnit se objevila třída TestWatchman (již deprecated). Největší nevýhodou bylo, že se volá až po metodě anoto­vané @After. Což nevadí do té doby, než se rozhod­nete v této metodě zavřít prohlížeč (výsledný screenshot je pak pocho­pi­telně k ničemu). V JUnit verze 4.10 byla naštěstí přidána mocná třída RuleChain.

Nejen v případě Selenium testů použi­jeme imple­men­tace rozhraní TestRule a to konkrétně třídy ExternalResource, TestWatcher a nakonec RuleChain, třída která určuje pořadí jednot­livých TestRule.

Po spuštění příkladu dosta­nete násle­dující výstup.

start server
	before
		test a
	after
Screenshot of the failed test SampleTest#testA
stop server
start server
	before
		test b
	after
stop server

JUnit nabízí víc možností než jen @Before, @Test a @After. Nezapo­meňte se proto podívat i na ostatní imple­men­tace rozhraní TestRule.