【发布时间】:2021-12-02 07:51:10
【问题描述】:
我正在将 golang SDK 用于时间。我正在为我的工作流程LoadCreateWorkflow 编写测试。它有一个活动,还启动了一个子工作流LoadLifecycleWorkflow。
在为它编写单元测试时,我模拟了活动和子工作流LoadLifecycleWorkflow:
s.env.OnActivity(CreateLoadActivity, mock.Anything, mock.Anything).Return(nil, nil).Once()
s.env.OnWorkflow(LoadLifecycleWorkflow, mock.Anything).Return(nil)
s.env.ExecuteWorkflow(LoadCreateWorkflow, wfParams)
(这里 s.env 是单元测试的TestWorkflowEnvironment):
import (
...
"go.temporal.io/sdk/testsuite"
)
type UnitTestSuite struct {
suite.Suite
testsuite.WorkflowTestSuite
env *testsuite.TestWorkflowEnvironment
}
func (s *UnitTestSuite) SetupTest() {
s.env = s.NewTestWorkflowEnvironment()
}
运行测试时出现错误:panic: unable to find workflow type: LoadLifecycleWorkflow. Supported types: [LoadCreateWorkflow]
在我的工作流模块的 init 函数中,我同时注册了它和子工作流:
worker.RegisterWorkflow(LoadCreateWorkflow)
worker.RegisterActivity(CreateLoadActivity)
worker.RegisterWorkflow(LoadLifecycleWorkflow)
为什么我收到我的LoadLifecycleWorkflow 未注册的错误,我该如何解决?
【问题讨论】:
标签: go testing temporal temporal-workflow