Class ExecutableInvoker

java.lang.Object
org.junit.jupiter.engine.execution.ExecutableInvoker

@API(status=INTERNAL, since="5.0") public class ExecutableInvoker extends Object
ExecutableInvoker encapsulates the invocation of a Executable (i.e., method or constructor), including support for dynamic resolution of method parameters via ParameterResolvers.
Since:
5.0
  • Constructor Details

    • ExecutableInvoker

      public ExecutableInvoker()
  • Method Details

    • invoke

      public <T> T invoke(Constructor<T> constructor, Optional<Object> outerInstance, ExtensionContext extensionContext, ExtensionRegistry extensionRegistry, ExecutableInvoker.ReflectiveInterceptorCall<Constructor<T>,​T> interceptorCall)
      Invoke the supplied constructor with the supplied outer instance and dynamic parameter resolution.

      This method should only be used to invoke the constructor for an inner class.

      Parameters:
      constructor - the constructor to invoke and resolve parameters for
      outerInstance - the outer instance to supply as the first argument to the constructor; empty, for top-level classes
      extensionContext - the current ExtensionContext
      extensionRegistry - the ExtensionRegistry to retrieve ParameterResolvers from
      interceptorCall - the call for intercepting this constructor invocation via all registered interceptors
    • invoke

      public <T> T invoke(Method method, Object target, ExtensionContext extensionContext, ExtensionRegistry extensionRegistry, ExecutableInvoker.ReflectiveInterceptorCall<Method,​T> interceptorCall)
      Invoke the supplied static method with dynamic parameter resolution.
      Parameters:
      method - the method to invoke and resolve parameters for
      extensionContext - the current ExtensionContext
      extensionRegistry - the ExtensionRegistry to retrieve ParameterResolvers from
      interceptorCall - the call for intercepting this method invocation via all registered interceptors