Class PowerMockJUnit44RunnerDelegateImpl

java.lang.Object
org.junit.runner.Runner
org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl
All Implemented Interfaces:
org.junit.runner.Describable, org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Sortable, PowerMockJUnitRunnerDelegate
Direct Known Subclasses:
PowerMockJUnit47RunnerDelegateImpl

public class PowerMockJUnit44RunnerDelegateImpl extends org.junit.runner.Runner implements org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Sortable, PowerMockJUnitRunnerDelegate
A JUnit4 test runner that only runs a specified set of test methods in a test class.

Many parts of this class are essentially a rip off from JUnit4ClassRunner used in JUnit 4.4. It does however not extend this class because we cannot let it perform the stuff it does in its constructor. Another thing that different is that if an exception is thrown in the test we add a tip to error message asking the user if they've not forgot to add a class to test. Yet another difference is that this runner notifies the PowerMock listeners of certain events.

See Also:
  • JUnit4ClassRunner
  • Field Details

    • testMethods

      private final List<Method> testMethods
    • testClass

      private final org.junit.internal.runners.TestClass testClass
    • powerMockTestNotifier

      private final PowerMockTestNotifier powerMockTestNotifier
  • Constructor Details

    • PowerMockJUnit44RunnerDelegateImpl

      public PowerMockJUnit44RunnerDelegateImpl(Class<?> klass, String[] methodsToRun, PowerMockTestListener[] listeners) throws org.junit.internal.runners.InitializationError
      Throws:
      org.junit.internal.runners.InitializationError
    • PowerMockJUnit44RunnerDelegateImpl

      public PowerMockJUnit44RunnerDelegateImpl(Class<?> klass, String[] methodsToRun) throws org.junit.internal.runners.InitializationError
      Throws:
      org.junit.internal.runners.InitializationError
    • PowerMockJUnit44RunnerDelegateImpl

      public PowerMockJUnit44RunnerDelegateImpl(Class<?> klass) throws org.junit.internal.runners.InitializationError
      Throws:
      org.junit.internal.runners.InitializationError
  • Method Details

    • getTestMethods

      protected final List<Method> getTestMethods(Class<?> klass, String[] methodsToRun)
    • validate

      protected final void validate() throws org.junit.internal.runners.InitializationError
      Throws:
      org.junit.internal.runners.InitializationError
    • run

      public void run(org.junit.runner.notification.RunNotifier notifier)
      Specified by:
      run in interface PowerMockJUnitRunnerDelegate
      Specified by:
      run in class org.junit.runner.Runner
    • runMethods

      protected void runMethods(org.junit.runner.notification.RunNotifier notifier)
    • getDescription

      public org.junit.runner.Description getDescription()
      Specified by:
      getDescription in interface org.junit.runner.Describable
      Specified by:
      getDescription in interface PowerMockJUnitRunnerDelegate
      Specified by:
      getDescription in class org.junit.runner.Runner
    • classAnnotations

      protected Annotation[] classAnnotations()
    • getName

      protected String getName()
    • createTest

      protected Object createTest() throws Exception
      Throws:
      Exception
    • createTestInstance

      Throws:
      InstantiationException
      IllegalAccessException
      InvocationTargetException
      NoSuchMethodException
    • invokeTestMethod

      protected void invokeTestMethod(Method method, org.junit.runner.notification.RunNotifier notifier)
    • createPowerMockRunner

      protected PowerMockJUnit44RunnerDelegateImpl.PowerMockJUnit44MethodRunner createPowerMockRunner(Object testInstance, org.junit.internal.runners.TestMethod testMethod, org.junit.runner.notification.RunNotifier notifier, org.junit.runner.Description description, boolean extendsFromTestCase)
    • testAborted

      private void testAborted(org.junit.runner.notification.RunNotifier notifier, org.junit.runner.Description description, Throwable e)
    • wrapMethod

      protected org.junit.internal.runners.TestMethod wrapMethod(Method method)
    • testName

      protected String testName(Method method)
    • methodDescription

      protected org.junit.runner.Description methodDescription(Method method)
    • testAnnotations

      protected Annotation[] testAnnotations(Method method)
    • filter

      public void filter(org.junit.runner.manipulation.Filter filter) throws org.junit.runner.manipulation.NoTestsRemainException
      Specified by:
      filter in interface org.junit.runner.manipulation.Filterable
      Throws:
      org.junit.runner.manipulation.NoTestsRemainException
    • sort

      public void sort(org.junit.runner.manipulation.Sorter sorter)
      Specified by:
      sort in interface org.junit.runner.manipulation.Sortable
    • getTestWrappedClass

      protected org.junit.internal.runners.TestClass getTestWrappedClass()
    • getTestCount

      public int getTestCount()
      Specified by:
      getTestCount in interface PowerMockJUnitRunnerDelegate
    • getTestClass

      public Class<?> getTestClass()
      Specified by:
      getTestClass in interface PowerMockJUnitRunnerDelegate