登录
首页 >  Golang >  Go问答

测试编写阶段发生临时错误:无法检索工作流程类型

来源:stackoverflow

时间:2024-03-13 21:18:27 197浏览 收藏

大家好,今天本人给大家带来文章《测试编写阶段发生临时错误:无法检索工作流程类型》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我正在使用 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:无法找到工作流类型:loadlifecycleworkflow。支持的类型:[loadcreateworkflow]

在我的工作流程模块的 init 函数中,我注册了它和子工作流程:

worker.RegisterWorkflow(LoadCreateWorkflow)
worker.RegisterActivity(CreateLoadActivity)
worker.RegisterWorkflow(LoadLifecycleWorkflow)

为什么我会收到 loadlifecycleworkflow 未注册的错误?如何修复该错误?


正确答案


子工作流必须注册到临时 TestWorkflowEnvironment

s.env.RegisterWorkflow(LoadLifecycleWorkflow)

测试工作流程环境是一个不同的环境,仅用于编写测试,因此您希望工作流程在测试中调用的任何子工作流程都应注册到此环境。

今天关于《测试编写阶段发生临时错误:无法检索工作流程类型》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>