草庐IT

test_shortcodes

全部标签

testing - 如何在单元测试中测试函数的输出(stdout/stderr)

我想测试一个简单的函数:func(t*Thing)print(min_verbosityint,messagestring){ift.verbosity>=minv{fmt.Print(message)}}但是我怎样才能测试函数实际发送到标准输出的内容呢?Test::Output在Perl中做我想要的。我知道我可以编写自己的所有样板在Go中做同样的事情(如here所述):orig=os.Stdoutr,w,_=os.Pipe()thing.print("Somemessage")varbufbytes.Bufferio.Copy(&buf,r)w.Close()os.Stdout=or

testing - 如何在单元测试中测试函数的输出(stdout/stderr)

我想测试一个简单的函数:func(t*Thing)print(min_verbosityint,messagestring){ift.verbosity>=minv{fmt.Print(message)}}但是我怎样才能测试函数实际发送到标准输出的内容呢?Test::Output在Perl中做我想要的。我知道我可以编写自己的所有样板在Go中做同样的事情(如here所述):orig=os.Stdoutr,w,_=os.Pipe()thing.print("Somemessage")varbufbytes.Bufferio.Copy(&buf,r)w.Close()os.Stdout=or

testing - 如何衡量 Golang 集成测试覆盖率?

我正在尝试使用gotest-cover来衡量我正在构建的服务的测试覆盖率。它是一个RESTAPI,我正在通过旋转它、发出测试HTTP请求并查看HTTP响应来对其进行测试。这些测试不是服务包的一部分,gotoolcover返回0%的测试覆盖率。有没有办法获得实际的测试覆盖率?我希望在给定端点上的最佳案例场景测试能够覆盖特定端点处理程序的至少30-50%的代码,并通过添加更多常见错误测试来进一步改进这一点。 最佳答案 我被指向了-coverpkg指令,它可以满足我的需要-测量特定包中的测试覆盖率,即使测试使用了这个包而不是它的一部分。例

testing - 如何衡量 Golang 集成测试覆盖率?

我正在尝试使用gotest-cover来衡量我正在构建的服务的测试覆盖率。它是一个RESTAPI,我正在通过旋转它、发出测试HTTP请求并查看HTTP响应来对其进行测试。这些测试不是服务包的一部分,gotoolcover返回0%的测试覆盖率。有没有办法获得实际的测试覆盖率?我希望在给定端点上的最佳案例场景测试能够覆盖特定端点处理程序的至少30-50%的代码,并通过添加更多常见错误测试来进一步改进这一点。 最佳答案 我被指向了-coverpkg指令,它可以满足我的需要-测量特定包中的测试覆盖率,即使测试使用了这个包而不是它的一部分。例

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