草庐IT

translation-unit

全部标签

unit-testing - 是否可以模拟从 golang 中的包导入的函数?

我有以下方法来测试,它使用从包中导入的函数。importx.y.zfuncabc(){...v:=z.SomeFunc()...}是否可以在golang中模拟SomeFunc()? 最佳答案 是的,通过简单的重构。创建一个函数类型的zSomeFunc变量,用z.SomeFunc初始化,并让你的包调用它而不是z.SomeFunc():varzSomeFunc=z.SomeFuncfuncabc(){//...v:=zSomeFunc()//...}在测试中,您可以为zSomeFunc分配另一个函数,该函数在测试中定义,并执行测试所需的

unit-testing - go test 是否同时运行单元测试?

当gotest运行时,它会运行以_test.go结尾的文件,方法是运行以TestXxx格式开头的函数并使用(*ttesting.T)模块。我想知道_test.go文件中的每个函数是否同时运行,或者它是否最终单独运行每个函数?它是否为每个人创建了一个例行程序?如果它确实为每个人创建了一个goroutine,我可以以某种方式监控goroutine吗?有没有可能做类似golibrary.GoRoutines()之类的事情并为每个实例获取一个实例并以某种方式或类似的方式监视它们?注意:本题假设你使用的是go(testing)自带的测试框架。 最佳答案

unit-testing - go test 是否同时运行单元测试?

当gotest运行时,它会运行以_test.go结尾的文件,方法是运行以TestXxx格式开头的函数并使用(*ttesting.T)模块。我想知道_test.go文件中的每个函数是否同时运行,或者它是否最终单独运行每个函数?它是否为每个人创建了一个例行程序?如果它确实为每个人创建了一个goroutine,我可以以某种方式监控goroutine吗?有没有可能做类似golibrary.GoRoutines()之类的事情并为每个实例获取一个实例并以某种方式或类似的方式监视它们?注意:本题假设你使用的是go(testing)自带的测试框架。 最佳答案

unit-testing - 对使用 gorilla/mux URL 参数的函数进行单元测试

TLDR:gorilla/mux过去不提供设置URLVars的可能性。现在确实如此,这就是为什么在很长一段时间内,第二高的答案是正确答案。要遵循的原始问题:这就是我想要做的:ma​​in.gopackagemainimport("fmt""net/http""github.com/gorilla/mux")funcmain(){mainRouter:=mux.NewRouter().StrictSlash(true)mainRouter.HandleFunc("/test/{mystring}",GetRequest).Name("/test/{mystring}").Methods(

unit-testing - 对使用 gorilla/mux URL 参数的函数进行单元测试

TLDR:gorilla/mux过去不提供设置URLVars的可能性。现在确实如此,这就是为什么在很长一段时间内,第二高的答案是正确答案。要遵循的原始问题:这就是我想要做的:ma​​in.gopackagemainimport("fmt""net/http""github.com/gorilla/mux")funcmain(){mainRouter:=mux.NewRouter().StrictSlash(true)mainRouter.HandleFunc("/test/{mystring}",GetRequest).Name("/test/{mystring}").Methods(

unit-testing - 如何模拟 http.Client Do 方法

我正在尝试寻找一种解决方案来编写测试和模拟HTTP响应。在我接受接口(interface)的函数中:typeHttpClientinterface{Do(req*http.Request)(*http.Response,error)}我使用基本身份验证发出http获取请求funcGetOverview(clientHttpClient,overview*Overview)(*Overview,error){request,err:=http.NewRequest("GET",fmt.Sprintf("%s:%s/api/overview",overview.Config.Url,ove

unit-testing - 如何模拟 http.Client Do 方法

我正在尝试寻找一种解决方案来编写测试和模拟HTTP响应。在我接受接口(interface)的函数中:typeHttpClientinterface{Do(req*http.Request)(*http.Response,error)}我使用基本身份验证发出http获取请求funcGetOverview(clientHttpClient,overview*Overview)(*Overview,error){request,err:=http.NewRequest("GET",fmt.Sprintf("%s:%s/api/overview",overview.Config.Url,ove

unit-testing - 忽略 Golang 测试覆盖率计算中的代码块

我正在为我的golang代码编写单元测试,在计算覆盖率时我希望忽略一些方法。这可能吗?如果有,怎么做? 最佳答案 一种方法是将您不想测试的函数放在单独的go文件中,并使用构建标签来防止在测试期间包含它。例如,我有时会在应用程序中执行此操作,其中我的main.go文件带有main函数,可能是使用函数等,但未经过测试。然后你可以添加一个测试标签或其他东西,比如gotest-v-cover-tagstest主要看起来像://+build!testpackagemainfuncmain(){//dostuff}funcusage(){//s

unit-testing - 忽略 Golang 测试覆盖率计算中的代码块

我正在为我的golang代码编写单元测试,在计算覆盖率时我希望忽略一些方法。这可能吗?如果有,怎么做? 最佳答案 一种方法是将您不想测试的函数放在单独的go文件中,并使用构建标签来防止在测试期间包含它。例如,我有时会在应用程序中执行此操作,其中我的main.go文件带有main函数,可能是使用函数等,但未经过测试。然后你可以添加一个测试标签或其他东西,比如gotest-v-cover-tagstest主要看起来像://+build!testpackagemainfuncmain(){//dostuff}funcusage(){//s

unit-testing - 如何使用 Go 中的测试包进行测试设置

当使用testingpackage时,如何进行整体测试设置处理,为所有测试奠定基础?例如,在Nunit中有一个[SetUp]属性。[TestFixture]publicclassSuccessTests{[SetUp]publicvoidInit(){/*Loadtestdata*/}} 最佳答案 从Go1.4开始,您可以实现setup/teardown(无需在每次测试之前/之后复制您的函数)。文档概述here在主要部分:TestMainrunsinthemaingoroutineandcandowhateversetupandte