JUnit result interceptor

Před nějakou dobou jsme psali o vlastní anotaci @AfterFailure v JUnit testech. Naší motivací byly screenshoty neúspěšných selenium testů. JUnit od verze 4.7 má svoje řešení jménem TestWatchman.

TestWatchman je v podstatě interceptor, který můžete zavěsit na události failed, finished, starting a succeeded. Ukažme si na následujícím příkladě, jak zareagovat na neúspěšný test a zjistit jméno třídy a název testu. Tento string používáme jako jméno screenshotu v našich selenium testech. Metoda failed se volá jak při assertationFailed tak při výjimce.

import static junit.framework.Assert.fail;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.MethodRule;
import org.junit.rules.TestWatchman;
import org.junit.runners.model.FrameworkMethod;
public class MyTest {
	@Rule
	public MethodRule watchman = new TestWatchman() {
		@Override
		public void failed(Throwable e, FrameworkMethod method) {
			String methodName = MyTest.this.getClass().getSimpleName() + "." + method.getName();
			System.out.println(methodName + " has failed!");
		}
	};
	@Test
	public void testFailed() {
		fail();
	}
}

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

 

 

Můžete použít tyto HTML tagy: <strong> <a href="" title="">
Chcete li do komentáře přidat zdrojový kód, obalte ho tagem [sourcecode language="jazyk"]


*