| Section | Core | Python | Py# | TypeScript | TS# | Ruby | Rb# | Go | Go# |
|---|---|---|---|---|---|---|---|---|---|
| Overview | — | ✓ | 1 | ✓ | 1 | TODO | 1 | ✓ | 1 |
| Test Environment Setup | — | ✓ | 2 | ✓ | 2 | TODO | 2 | ✓ | 2 |
| Time Skipping | — | — | — | — | — | — | — | — | — |
| Activity Mocking | — | ✓ | 3 | ✓ | 3 | TODO | 3 | ✓ | 3 |
| Testing Signals and Queries | — | ✓ | 4 | ✓ | 4 | TODO | 4 | ✓ | 4 |
| Testing Failure Cases | — | ✓ | 5 | ✓ | 5 | TODO | 5 | ✓ | 5 |
| Replay Testing | — | ✓ | 6 | ✓ | 6 | TODO | 6 | ✓ | 6 |
| Activity Testing | — | ✓ | 7 | ✓ | 7 | TODO | 7 | ✓ | 7 |
| Best Practices | — | ✓ | 8 | ✓ | 8 | TODO | 8 | ✓ | 8 |
| Language | Status | Notes |
|---|---|---|
| Python | ✓ reference | — |
| TypeScript | ✓ aligned | Added failure/activity testing |
| Ruby | — | Not started |
| Go | ✓ aligned | testsuite package, testify, mock activities, TestWorkflowEnvironment |
Ruby notes:
- Test Environment:
Temporalio::Testing::WorkflowEnvironment.start_local(same dev server as other SDKs) - Activity Mocking: Write fake activity classes with
activity_name :RealActivityNameto override - Activity Testing:
Temporalio::Testing::ActivityEnvironmentfor isolated activity tests - Replay Testing:
Temporalio::Worker::WorkflowReplayerwithreplay_workflow/replay_workflows - Compatible with any test framework (minitest commonly used in samples)
- Ruby uses
Temporalio::Worker::WorkflowExecutor::ThreadPool.defaultfor test workers
Go-specific notes:
- Test Environment:
testsuite.WorkflowTestSuite+testsuite.TestWorkflowEnvironmentfromgo.temporal.io/sdk/testsuite - Uses testify library (
suite.Suite,assert,mock) - Activity Mocking:
env.OnActivity(ActivityFunc, mock.Anything, ...).Return(result, nil)— can use function replacement - Testing Signals:
env.RegisterDelayedCallbackto send signals;env.SignalWorkflow - Testing Queries:
env.QueryWorkflow("queryName")returnsconverter.EncodedValue - Testing Failure:
env.GetWorkflowError()+errors.As(err, &applicationErr) - Replay Testing:
worker.ReplayWorkflowHistorywith JSON history - Activity Testing:
testsuite.TestActivityEnvironmentfor isolated activity tests - Time Skipping: built into TestWorkflowEnvironment (timers fire immediately)
Intentionally missing (—):
- Core column: no core testing.md exists (implementation-specific)
- Time Skipping: mentioned inline (built into test environment)
Order alignment: ✅ Aligned — Ruby and Go sections match Python/TypeScript order
Style alignment: ✅ Complete (Python, TypeScript, Go). Ruby should follow same 8-section structure.