Skip to content
MarkAbrams edited this page Feb 1, 2024 · 11 revisions

LogicAppUnit is a testing framework that simplifies the creation of automated unit tests for Standard Logic Apps running in a local development environment, or in a build server as part of a DevOps pipeline. Standard Logic Apps do not include an out-of-the-box testing capability and this framework has been designed to fill this gap.

The framework does not support the testing of:

  • Consumption Logic App workflows.
  • Standard Logic App workflows that have been deployed to Azure.

The testing framework has been designed to make it easier to perform isolated unit testing of a workflow. The framework does this by modifying a copy of the workflow definition to remove the dependencies on external services and APIs, without affecting the functionality or behaviour of the workflow. This means that workflows can be easily tested in a developer's local environment, and by a DevOps pipeline running on a build server, where there is no access to Azure services or any other workflow dependencies.

The framework includes these high-level capabilities:

  • Replace non-HTTP triggers with HTTP triggers to enable automated testing of every workflow, irrespective of the trigger type.
  • Remove external service dependencies for built-in service provider connectors by replacing these actions with HTTP actions and a mock HTTP server that is managed by the framework.
  • Remove external service dependencies for managed API connectors by automatically re-configuring managed API connections to use a mock HTTP server that is managed by the framework.
  • Remove dependencies on invoked workflows and called local functions by replacing the Invoke Workflow and Call Local Function actions with HTTP actions and a mock HTTP server that is managed by the framework.
  • Remove all retry policies to ensure that tests exercising failure scenarios do not take a long time to execute.
  • Remove chunking configuration for HTTP actions.
  • A fluent API to configure request matching and the creation of responses for the mock HTTP server.
  • Detailed test execution logging to help with workflow test authoring and debugging.
  • Programmatic access to the workflow run history to enable assertion of workflow run status, response status, action status, input and output messages and more. This includes support for action repetitions inside a loop.
  • Programmatic access to the requests sent to the mock HTTP server to enable assertion of the data sent from the workflow to external services and APIs.
  • Override local settings for a test case to enable more testing scenarios (e.g. feature flags).
  • Automatically enable run history for stateless workflows by creating the Workflows.<workflow name>.OperationOptions setting.
Clone this wiki locally