temporalio / temporalio/sdk-java
Provide way to populate activity execution context for activity unit tests
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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