Class ExecutableInvoker

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

@API(status=INTERNAL,
     since="5.0")
public class ExecutableInvoker
extends java.lang.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
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static interface  ExecutableInvoker.ReflectiveInterceptorCall<E extends java.lang.reflect.Executable,​T>  
  • Constructor Summary

    Constructors
    Constructor Description
    ExecutableInvoker()  
  • Method Summary

    Modifier and Type Method Description
    <T> T invoke​(java.lang.reflect.Constructor<T> constructor, java.util.Optional<java.lang.Object> outerInstance, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ExtensionRegistry extensionRegistry, ExecutableInvoker.ReflectiveInterceptorCall<java.lang.reflect.Constructor<T>,​T> interceptorCall)
    Invoke the supplied constructor with the supplied outer instance and dynamic parameter resolution.
    <T> T invoke​(java.lang.reflect.Method method, java.lang.Object target, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ExtensionRegistry extensionRegistry, ExecutableInvoker.ReflectiveInterceptorCall<java.lang.reflect.Method,​T> interceptorCall)
    Invoke the supplied static method with dynamic parameter resolution.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ExecutableInvoker

      public ExecutableInvoker()
  • Method Details

    • invoke

      public <T> T invoke​(java.lang.reflect.Constructor<T> constructor, java.util.Optional<java.lang.Object> outerInstance, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ExtensionRegistry extensionRegistry, ExecutableInvoker.ReflectiveInterceptorCall<java.lang.reflect.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​(java.lang.reflect.Method method, java.lang.Object target, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ExtensionRegistry extensionRegistry, ExecutableInvoker.ReflectiveInterceptorCall<java.lang.reflect.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