草庐IT

template_export_test

全部标签

testing - 测试 Go 中未导出函数的命名约定

我无法追溯我是从哪里知道的,但通常情况下,如果有人为方法Foo编写测试,则相应的测试名为TestFoo。如果测试一个未导出的函数,比如foo,那么测试的名称应该是什么?我的问题来自这样一个事实,当要求为未导出的函数生成测试时,JetBrainsIDEforGo会生成类似Test_foo的内容。这种行为可能是有道理的,因为如果你有Foo并且它是未导出的counterpatfoo在同一个包中,你会想以某种方式对它们进行不同的测试(在至少对于IDE中的跳转测试功能而言)。那么在未导出的函数之后命名测试有什么约定吗?顺便说一句:Go的文档testing包说,如果是,则执行测试:anyfunct

go template - 嵌套模板化

我有几个go模板。下面的例子过于简单,但它正确地表达了我的想法。例如,我有{{define"div-block"}}.....{{end}}现在我想在使用div-block时转移任何其他模板,这样我就可以在div中放置任何东西。例如:{{template"div-block".}}{{template"header"}}{{end}}{{template"div-block".}}1{{end}}“标题”是其他模板。使用go模板执行此操作的正确方法是什么?是否可以使用自定义功能来做到这一点?是否可以在go模板中制作自定义actions?(Action可以有end语句,因此也有主体,而函

templates - 使用数据解析多个模板

如何将数据传递到正确的模板?我有以下模板并想解析它们layout.html:......{{template"main"}}list.html:{{define"main"}}{{range$index,$element:=.}}{{$element.Data1}}{{$element.Data2}}{{$element.Data3}}{{end}}{{end}}当我在处理函数中使用它时,只执行“主”模板,我没有得到布局。t,err:=template.ParseFiles(layoutPath,templatePath)t.ExecuteTemplate(w,"main",Data)

http - 我的字符串有特殊字符,http/template 的输出添加了 "(MISSING)"

我正在尝试建立一个小型网站,我使用html/模板来创建动态页面。页面上的一件事是这些URL中的URL列表,有时我需要字符编码。对于像ô(%C3%B4)这样的特殊字符。当我尝试使用html/模板将变量解析到页面中时,我得到以下结果:%!c(MISSING)3%!b(MISSING)4。我不知道这里出了什么问题typeSearch_liststruct{Search_namestringSearch_urlstringSearch_pricefloat64}funcgenerateSearchPage(languageint,qstring)(string,error){/*ommited

templates - 如何使用结构或变量值的字段作为模板名称?

我们可以通过{{define"home"}}定义模板名称,然后通过{{template"home"}}将其加载到其他(父)模板中>.如何通过变量值{{template.TemplateName}}加载模板。或者这是不可能的? 最佳答案 很遗憾,你不能。{{template}}操作的语法:{{template"name"}}Thetemplatewiththespecifiednameisexecutedwithnildata.{{template"name"pipeline}}Thetemplatewiththespecifiedn

testing - 测试后清理数据

我编写测试,在这个测试中我使用一些保存的数据文件、数据库记录等。我应该在测试结束前删除这些数据吗?例如,我检查userfinderfunc(IDint)User(*User){//myfinderhere}在测试之前,我必须为数据库创建User。那么,我是否应该做类似的事情deferdb.Clean()???与文件相同*os.File 最佳答案 为了让我们都在同一个页面上,有许多不同形式的测试。这里我们将考虑单元测试和集成测试。如果您进行单元测试,我希望仅使用模拟,而不与文件交互。所以我假设这是为了某种集成测试。Thisisalin

testing - 我如何在 Go 中查看或测试优雅重启?

我通过gin's提供HTTPhttps://github.com/fvbock/endless.我想看看与基本HTTP服务器的区别。我发送了syscall.SIGUSR1信号:syscall.Kill(getPid(),syscall.SIGUSR1)应用程序没有退出,但我无法检测到重启。我要做的是在toml配置文件更改时为应用程序初始化新配置。我的代码如下:packagemainimport("os""fmt""syscall""github.com/gin-gonic/gin""github.com/fvbock/endless""github.com/BurntSushi/tom

unit-testing - 用于文件创建的表驱动测试

我从@volker那里得到了一个关于表驱动测试的例子,如下所示但目前我想念我应该在真正的测试中放什么,这个测试使用字节,目前我不确定在args和expected[]byte中放什么,例如我想检查文件中是否有2换行然后是application条目,我该怎么做而不需要创建真实文件并解析它?typeModelsstruct{namestringvtypestringcontentTypestring}funcsetFile(fileio.Writer,appStrModels){fmt.Fprint(file,"1.0")fmt.Fprint(file,"Created-By:applica

testing - Go gRPC 服务器使集成测试失败

我最近又开始玩go,我现在的任务是实现一个服务(将运行在k8s上),它应该充当gRPC服务器。根据要求,目前,为了满足k8s上的readinessProbe,我需要为我的服务实现一个健康检查端点,并且应该对其进行测试:我所做的是:funcmain(){server:=startHTTPServer()deferserver.Close()c:=make(chanos.Signal,1)signal.Notify(c,os.Interrupt,syscall.SIGTERM,syscall.SIGINT)我按照thisarticle这样测试的:funcTestMain(m*testing

unit-testing - 数据库连接get的单元测试策略

被测代码中有一个方法,它只是尝试获取数据库连接,如果无法连接则返回错误。它,以及涉及的结构体定义如下:typeDatabaseContextstruct{ContextDatabaseDatabaseSt}////GetInfoReturnsthecontext.//func(c*DatabaseContext)GetInfo()*Context{//return&c.Context//}//GetDBGetsthedatabaseconnectionfromtheconnectionstring.func(c*DatabaseContext)GetDB()(*sql.DB,*erro