TestWorkflowEnvironment provides workflow unit testing capabilities.
Testing the workflow code is hard as it might be potentially very long running. The included in-memory
implementation of the Temporal service supports an automatic time skipping. Anytime a workflow under the test
as well as the unit test code are waiting on a timer (or sleep) the internal service time is automatically advanced
to the nearest time that unblocks one of the waiting threads. This way a workflow that runs in production for months
is unit tested in milliseconds. Here is an example of a test that executes in a few milliseconds instead of over two
hours that are needed for the workflow to complete:
Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current
thread is interrupted, whichever happens first.
Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current
thread is interrupted, whichever happens first.
Initiates an orderly shutdown in which polls are stopped and already received workflow and activity tasks are
attempted to be stopped. This implementation cancels tasks via Thread.interrupt(), so any task that fails to
respond to interrupts may never terminate.
Initiates an orderly shutdown in which polls are stopped and already received workflow and activity tasks are
attempted to be stopped. This implementation cancels tasks via Thread.interrupt(), so any task that fails to
respond to interrupts may never terminate.