use of org.junit.platform.engine.test.event.ExecutionEventRecorder in project junit5 by junit-team.
the class BeforeAndAfterEachTests method beforeEachCallbackThrowsAnException.
@Test
void beforeEachCallbackThrowsAnException() {
LauncherDiscoveryRequest request = request().selectors(selectClass(ExceptionInBeforeEachCallbackTestCase.class)).build();
ExecutionEventRecorder eventRecorder = executeTests(request);
assertEquals(1, eventRecorder.getTestStartedCount(), "# tests started");
assertEquals(0, eventRecorder.getTestSuccessfulCount(), "# tests succeeded");
assertEquals(0, eventRecorder.getTestSkippedCount(), "# tests skipped");
assertEquals(0, eventRecorder.getTestAbortedCount(), "# tests aborted");
assertEquals(1, eventRecorder.getTestFailedCount(), "# tests failed");
// @formatter:off
assertEquals(asList("fooBeforeEachCallback", // throws an exception.
"exceptionThrowingBeforeEachCallback", // afterEachMethod should not get invoked.
"barAfterEachCallback", "fooAfterEachCallback"), callSequence, "wrong call sequence");
// @formatter:on
assertThat(actualExceptionInAfterEachCallback).containsInstanceOf(EnigmaException.class);
}
use of org.junit.platform.engine.test.event.ExecutionEventRecorder in project junit5 by junit-team.
the class BeforeAndAfterEachTests method beforeEachAndAfterEachCallbacks.
@Test
void beforeEachAndAfterEachCallbacks() {
LauncherDiscoveryRequest request = request().selectors(selectClass(OuterTestCase.class)).build();
ExecutionEventRecorder eventRecorder = executeTests(request);
assertEquals(2, eventRecorder.getTestStartedCount(), "# tests started");
assertEquals(2, eventRecorder.getTestSuccessfulCount(), "# tests succeeded");
assertEquals(0, eventRecorder.getTestSkippedCount(), "# tests skipped");
assertEquals(0, eventRecorder.getTestAbortedCount(), "# tests aborted");
assertEquals(0, eventRecorder.getTestFailedCount(), "# tests failed");
// @formatter:off
assertEquals(asList(// OuterTestCase
"fooBeforeEachCallback", "barBeforeEachCallback", "beforeEachMethod", "testOuter", "afterEachMethod", "barAfterEachCallback", "fooAfterEachCallback", // InnerTestCase
"fooBeforeEachCallback", "barBeforeEachCallback", "fizzBeforeEachCallback", "beforeEachMethod", "beforeEachInnerMethod", "testInner", "afterEachInnerMethod", "afterEachMethod", "fizzAfterEachCallback", "barAfterEachCallback", "fooAfterEachCallback"), callSequence, "wrong call sequence");
// @formatter:on
}
use of org.junit.platform.engine.test.event.ExecutionEventRecorder in project junit5 by junit-team.
the class BeforeAndAfterEachTests method beforeEachMethodThrowsAnException.
@Test
void beforeEachMethodThrowsAnException() {
LauncherDiscoveryRequest request = request().selectors(selectClass(ExceptionInBeforeEachMethodTestCase.class)).build();
ExecutionEventRecorder eventRecorder = executeTests(request);
assertEquals(1, eventRecorder.getTestStartedCount(), "# tests started");
assertEquals(0, eventRecorder.getTestSuccessfulCount(), "# tests succeeded");
assertEquals(0, eventRecorder.getTestSkippedCount(), "# tests skipped");
assertEquals(0, eventRecorder.getTestAbortedCount(), "# tests aborted");
assertEquals(1, eventRecorder.getTestFailedCount(), "# tests failed");
// Since the JVM does not guarantee the order in which methods are
// returned via reflection (and since JUnit Jupiter does not yet
// support ordering of @BeforeEach methods), we have to figure out
// which @BeforeEach method got executed first in order to determine
// the expected call sequence.
// @formatter:off
List<String> list1 = asList("fooBeforeEachCallback", // throws an exception.
"beforeEachMethod1", // test should not get invoked.
"afterEachMethod", "fooAfterEachCallback");
List<String> list2 = asList("fooBeforeEachCallback", "beforeEachMethod2", // throws an exception.
"beforeEachMethod1", // test should not get invoked.
"afterEachMethod", "fooAfterEachCallback");
// @formatter:on
List<String> expected = beforeEachMethodCallSequence.get(0).equals("beforeEachMethod1") ? list1 : list2;
assertEquals(expected, callSequence, "wrong call sequence");
assertThat(actualExceptionInAfterEachCallback).containsInstanceOf(EnigmaException.class);
}
use of org.junit.platform.engine.test.event.ExecutionEventRecorder in project junit5 by junit-team.
the class BeforeAndAfterEachTests method beforeEachAndAfterEachCallbacksDeclaredOnSuperclassAndSubclass.
@Test
void beforeEachAndAfterEachCallbacksDeclaredOnSuperclassAndSubclass() {
LauncherDiscoveryRequest request = request().selectors(selectClass(ChildTestCase.class)).build();
ExecutionEventRecorder eventRecorder = executeTests(request);
assertEquals(1, eventRecorder.getTestStartedCount(), "# tests started");
assertEquals(1, eventRecorder.getTestSuccessfulCount(), "# tests succeeded");
assertEquals(0, eventRecorder.getTestSkippedCount(), "# tests skipped");
assertEquals(0, eventRecorder.getTestAbortedCount(), "# tests aborted");
assertEquals(0, eventRecorder.getTestFailedCount(), "# tests failed");
// @formatter:off
assertEquals(asList("fooBeforeEachCallback", "barBeforeEachCallback", "testChild", "barAfterEachCallback", "fooAfterEachCallback"), callSequence, "wrong call sequence");
// @formatter:on
}
use of org.junit.platform.engine.test.event.ExecutionEventRecorder in project junit5 by junit-team.
the class BeforeAndAfterEachTests method afterEachCallbackThrowsAnException.
@Test
void afterEachCallbackThrowsAnException() {
LauncherDiscoveryRequest request = request().selectors(selectClass(ExceptionInAfterEachCallbackTestCase.class)).build();
ExecutionEventRecorder eventRecorder = executeTests(request);
assertEquals(1, eventRecorder.getTestStartedCount(), "# tests started");
assertEquals(0, eventRecorder.getTestSuccessfulCount(), "# tests succeeded");
assertEquals(0, eventRecorder.getTestSkippedCount(), "# tests skipped");
assertEquals(0, eventRecorder.getTestAbortedCount(), "# tests aborted");
assertEquals(1, eventRecorder.getTestFailedCount(), "# tests failed");
// @formatter:off
assertEquals(asList("fooBeforeEachCallback", "barBeforeEachCallback", "beforeEachMethod", "test", "afterEachMethod", "barAfterEachCallback", // throws an exception.
"exceptionThrowingAfterEachCallback", "fooAfterEachCallback"), callSequence, "wrong call sequence");
// @formatter:on
assertThat(actualExceptionInAfterEachCallback).containsInstanceOf(EnigmaException.class);
}
Aggregations