@Test public void after_hooks_execute_in_reverse_order() throws Throwable { List<HookDefinition> hooks = mockHooks(2, Integer.MAX_VALUE, 4); for (HookDefinition hook : hooks) { glue.addAfterHook(hook); } runtime.runAfterHooks(mock(Reporter.class), new HashSet<Tag>()); InOrder inOrder = inOrder(hooks.toArray()); inOrder.verify(hooks.get(1)).execute(Matchers.<Scenario>any()); inOrder.verify(hooks.get(2)).execute(Matchers.<Scenario>any()); inOrder.verify(hooks.get(0)).execute(Matchers.<Scenario>any()); }