temporalio / temporalio/sdk-java

Provide way to populate activity execution context for activity unit tests

Open
#2,034 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Java
Stars
433
Forks
249
Avg merge
5d 6h
Merged PRs (30d)
26

Description

Is your feature request related to a problem? Please describe.
I am writing unit tests for activity with TestActivityEnvironment, and using var workflowType = Activity.getExecutionContext().getInfo().getWorkflowType(); in my activity.

There is no way to populate this execution context for as of now other then creating a temporary workflow using TestWorkflowEnvironment and creating a sample workflow.

Ideally, I should be able to setup execution context for tests without any interactions with workflows.

Describe the solution you'd like
Something like below would be nice.

TestActivityEnvironment.newInstance(TestEnvironmentOptions.newBuilder().setActivityExecutionContext(...).build())

Describe alternatives you've considered
Setting up test environment workflow, which is very tedious for unit tests.

Additional context
See https://temporalio.slack.com/archives/CTT84KXK9/p1712848268603179

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing TestActivityEnvironment and TestEnvironmentOptions, then compare how TestWorkflowEnvironment supplies activity execution context. Verify the Activity.getExecutionContext().getInfo().getWorkflowType() path in an activity unit test, and consider the issue done when a test can configure that context without creating a workflow.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.