草庐IT

power_unit

全部标签

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

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

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

unit-testing - 在 Go 中分离单元测试和集成测试

在GoLang(作证)中分离单元测试和集成测试是否有既定的最佳实践?我混合了单元测试(不依赖任何外部资源,因此运行速度非常快)和集成测试(确实依赖任何外部资源,因此运行速度较慢)。所以,当我说gotest时,我希望能够控制是否包含集成测试。最直接的技术似乎是在main中定义一个-integrate标志:varrunIntegrationTests=flag.Bool("integration",false,"Runtheintegrationtests(inadditiontotheunittests)")然后在每个集成测试的顶部添加一个if语句:if!*runIntegrationT

unit-testing - 在 Go 中分离单元测试和集成测试

在GoLang(作证)中分离单元测试和集成测试是否有既定的最佳实践?我混合了单元测试(不依赖任何外部资源,因此运行速度非常快)和集成测试(确实依赖任何外部资源,因此运行速度较慢)。所以,当我说gotest时,我希望能够控制是否包含集成测试。最直接的技术似乎是在main中定义一个-integrate标志:varrunIntegrationTests=flag.Bool("integration",false,"Runtheintegrationtests(inadditiontotheunittests)")然后在每个集成测试的顶部添加一个if语句:if!*runIntegrationT

unit-testing - 使用 Go 语言进行测试的正确包命名

我在Go中看到了几种不同的测试包命名策略,想知道每种方法的优缺点以及我应该使用哪一种。策略1:文件名:github.com/user/myfunc.gopackagemyfunc测试文件名:github.com/user/myfunc_test.gopackagemyfunc见bzip2举个例子。策略2:文件名:github.com/user/myfunc.gopackagemyfunc测试文件名:github.com/user/myfunc_test.gopackagemyfunc_testimport("github.com/user/myfunc")见wire举个例子。策略3:文

unit-testing - 使用 Go 语言进行测试的正确包命名

我在Go中看到了几种不同的测试包命名策略,想知道每种方法的优缺点以及我应该使用哪一种。策略1:文件名:github.com/user/myfunc.gopackagemyfunc测试文件名:github.com/user/myfunc_test.gopackagemyfunc见bzip2举个例子。策略2:文件名:github.com/user/myfunc.gopackagemyfunc测试文件名:github.com/user/myfunc_test.gopackagemyfunc_testimport("github.com/user/myfunc")见wire举个例子。策略3:文

unit-testing - 如何在 Go 中测量测试覆盖率

有没有人成功地为Go单元测试生成代码覆盖率?我在网上找不到这样的工具。 最佳答案 请注意Go1.2(Q42013,rc1isavailable)现在将显示testcoverageresults:Onemajornewfeatureofgotestisthatitcannowcomputeand,withhelpfromanew,separatelyinstalled"gotoolcover"program,displaytestcoverageresults.Thecovertoolispartofthego.toolssubrep