Class TestWorkflowExtension

  • All Implemented Interfaces:
    org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.TestWatcher

    public class TestWorkflowExtension
    extends java.lang.Object
    implements org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.TestWatcher, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback
    JUnit Jupiter extension that simplifies testing of Temporal workflows.

    The extension manages Temporal test environment and workflow worker lifecycle, and be used with both in-memory (default) and standalone temporal service (see TestWorkflowExtension.Builder.useInternalService(), TestWorkflowExtension.Builder.useExternalService() and TestWorkflowExtension.Builder.useExternalService(String)}).

    This extension can inject workflow stubs as well as instances of TestWorkflowEnvironment, WorkflowClient, WorkflowOptions, Worker, into test methods.

    Usage example:

    
     public class MyTest {
    
      @RegisterExtension
       public static final TestWorkflowExtension workflowExtension =
           TestWorkflowExtension.newBuilder()
               .setWorkflowTypes(MyWorkflowImpl.class)
               .setActivityImplementations(new MyActivities())
               .build();
    
      @Test
       public void testMyWorkflow(MyWorkflow workflow) {
         // Test code that calls MyWorkflow methods
       }
     }
     
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void afterEach​(org.junit.jupiter.api.extension.ExtensionContext context)  
      void beforeEach​(org.junit.jupiter.api.extension.ExtensionContext context)  
      protected TestEnvironmentOptions createTestEnvOptions​(long initialTimeMillis)  
      static TestWorkflowExtension.Builder newBuilder()  
      java.lang.Object resolveParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)  
      boolean supportsParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)  
      void testFailed​(org.junit.jupiter.api.extension.ExtensionContext context, java.lang.Throwable cause)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.junit.jupiter.api.extension.TestWatcher

        testAborted, testDisabled, testSuccessful
    • Method Detail

      • supportsParameter

        public boolean supportsParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext,
                                         org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                                  throws org.junit.jupiter.api.extension.ParameterResolutionException
        Specified by:
        supportsParameter in interface org.junit.jupiter.api.extension.ParameterResolver
        Throws:
        org.junit.jupiter.api.extension.ParameterResolutionException
      • resolveParameter

        public java.lang.Object resolveParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext,
                                                 org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                                          throws org.junit.jupiter.api.extension.ParameterResolutionException
        Specified by:
        resolveParameter in interface org.junit.jupiter.api.extension.ParameterResolver
        Throws:
        org.junit.jupiter.api.extension.ParameterResolutionException
      • beforeEach

        public void beforeEach​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
      • afterEach

        public void afterEach​(org.junit.jupiter.api.extension.ExtensionContext context)
                       throws java.lang.Exception
        Specified by:
        afterEach in interface org.junit.jupiter.api.extension.AfterEachCallback
        Throws:
        java.lang.Exception
      • testFailed

        public void testFailed​(org.junit.jupiter.api.extension.ExtensionContext context,
                               java.lang.Throwable cause)
        Specified by:
        testFailed in interface org.junit.jupiter.api.extension.TestWatcher