草庐IT

test_client

全部标签

testing - 如何测试go中函数的返回值是指向类型的指针?

我在测试用例中突出显示了我希望某些东西应该去的地方。理想情况下,我想测试i是WHAT_SHOULD_I_PUT_HERE的一个实例主.gopackagemainimport"fmt"typeSomeTypestruct{thingThatNeedsSetupstruct{}}funcCreate()*SomeType{return&SomeType{}}funcmain(){a:=Create()fmt.Println(a.thingThatNeedsSetup)}main_test.gopackagemainimport("testing")funcTestCreate(t*test

unit-testing - 具有自定义 ServeHTTP 实现的 http 处理程序的 golang 单元测试

我正在尝试为我的http文件服务器编写单元测试。我已经实现了ServeHTTP函数,以便它在URL中用“/”替换“//”:typeslashFixstruct{muxhttp.Handler}func(h*slashFix)ServeHTTP(whttp.ResponseWriter,r*http.Request){r.URL.Path=strings.Replace(r.URL.Path,"//","/",-1)h.mux.ServeHTTP(w,r)}最低限度的代码如下所示:funcStartFileServer(){httpMux:=http.NewServeMux()httpM

unit-testing - 如何在不同的包中测试未导出的结构字段?

我有一个用工厂创建对象的包。结构具有未导出的字段,例如:packagefetchertypeGitFetcherstruct{uristring}我有另一个包,它解析一些配置文件,然后构建另一个使用上述对象的对象:packageconfigtypeSourcestruct{fetcherGitFetcher}我正在尝试测试我的config包。我想构建一些预期的对象,但由于我的测试在config中,而我的GitFetcher在fetcher中,我不能只创建对象我想要,例如:packageconfigexpected:=GitFetcher{uri:"example.com/repo.gi

unit-testing - 去单元测试找不到所需的文件

我在go中编写了一个单元测试,同一文件的init方法在项目的根目录中打开了一个文件。我遇到的问题是,当我运行测试时,测试包是不包含所需文件的根目录。如何告诉测试函数查看文件而不在测试文件的目录中创建重复文件?文件结构:main.go|+-helpers|+-data.go|+-data_test.gorequired_file.txt测试命令:gotestgithub.com/testproj/helpersdata.go中的代码:funcinit(){file,err:=os.Open("required_file.txt")iferr!=nil{log.Fatal(err)

unit-testing - 使 ioutil.ReadAll(response.Body) 在 golang 中抛出错误

出于某种原因,我似乎无法获取ioutil.ReadAll(res.Body),其中res是*http.Response由res,err:=hc.Do(redirectRequest)返回(对于hchttp.Client,redirectRequest*http.Request)。到目前为止的测试策略任何时候我在SUT中看到hc.Do或http.Request,我的直觉是启动一个假服务器并指向适当的申请说明。这样的服务器,对于这个测试,看起来像这样:badServer:=httptest.NewServer(http.HandlerFunc(func(whttp.ResponseWrit

go - 在 TestMain 中使用 testing.T

我想运行一些测试用例,需要启动GRPC模拟服务器。为此,我正在使用gomock库。要启动服务器,我必须将类型为testing.T的变量传递给此函数-gomock.NewController().由于这是对所有测试用例的一种初始化,我想在TestMain中执行此操作。但是TestMain只能访问testing.M那么我该如何处理这种情况呢?在TestMain中创建一个新的testing.T结构?会成功吗? 最佳答案 听起来您正在寻找BeforeEach模式。您无权访问TestMain中的testing.T对象,因为这是在测试套件运行前

client-go 中的 golang 语法

这个问题在这里已经有了答案:Whatdoesanunderscoreandinterfacenameafterkeywordvarmean?(2个答案)关闭3年前。有人可以帮助我理解这些代码吗?在client-go项目中,有些代码我看不懂。代码路径为\tols\cache\store.goAdd(objinterface{})errorUpdate(objinterface{})errorDelete(objinterface{})errorList()[]interface{}ListKeys()[]stringGet(objinterface{})(iteminterface{},

testing - 为什么 GoConvey 测试失败并显示错误代码 0?

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭4年前。Improvethisquestion我需要在构建过程中运行GoConvey测试我如何确保gotest以错误退出代码(非0)退出?

testing - 在非主程序包中运行类似主程序的程序

我们有一个包含大量复杂测试的包。作为测试套件的一部分,它们在构建等上运行。funcTestFunc(t*testing.T){//lotsofsetupstuffanddefiningsuccessconditionsresult:=SystemModel.Run()}现在,对于其中一个测试,我想介绍某种前端,它可以让我调试一些东西。它不是真正的测试,而是调试工具。为此,我只想运行相同的测试,但使用Builder模式:funcTestFuncWithFrontend(t*testing.T){//lotsofsetupstuffanddefiningsuccessconditionsr

Go test <function> 返回 undefined : <function>

尝试运行“gotestsum_test.go”返回错误:./sum_test.go:18:13:未定义:SumInt8FAIL命令行参数[构建失败]我正在学习golang入门类(class)。我们的老师分发了一个代码文件sum.go和一个测试文件sum_test.go。尝试在sum_test.go上运行“gotest”会返回上述错误。代码在我们老师的mac上运行良好,但他在重现问题时遇到了困难。这是我的环境设置:https://pastebin.com/HcuNVcAF求和packagesumfuncSumInt8(a,bint8)int8{returna+b}funcSumFloat