首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义Go中的测试

自定义Go中的测试
EN

Stack Overflow用户
提问于 2014-08-21 07:15:47
回答 3查看 46关注 0票数 0

我有一个在GO中运行测试用例的场景,其中我知道在第二次或第三次尝试之后,一个用于例如: first_test.go的测试文件将通过,

假设它正在调用到数据库的连接,或者调用REST服务或任何其他典型场景。

正在遍历$go test命令中可用的选项,但许多尝试都没有可用的参数。是否有任何方法实现对文件的尝试或从静态文件中调用方法,其中包含任何尝试3-4次的方法,例如这个典型的文件场景:

代码语言:javascript
复制
func TestTry(t *testing.T) {
    //Code to connect to a database
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-21 20:32:24

一个成语是使用构建标志。只为集成测试创建一个特殊的测试文件,然后添加

代码语言:javascript
复制
// +build integration
package mypackage
import testing

然后运行用于集成的测试,运行:

代码语言:javascript
复制
go test -tags=integration

然后你可以添加逻辑

代码语言:javascript
复制
// +build integration
package testing

var maxAttempts = flag.Int(...)

func TestMeMaybe(t *testing.T){
 for i :=0 ; i < *maxAttempts; i++ {
   innerTest()
 }
}
票数 2
EN

Stack Overflow用户

发布于 2014-08-21 07:21:43

不,这将是非常奇怪的:测试如果随机成功的话,有时有什么好处呢?

你为什么不在考试中“试一试”呢?真正的测试不是通过了,就是失败了,您需要处理有关“我需要‘尝试’调用这个外部资源多次来唤醒它的知识。”

票数 1
EN

Stack Overflow用户

发布于 2014-08-21 07:35:36

这不是测试的工作方式:测试的目的是告诉您代码是否按预期工作,而不是判断外部资源是否可用。

在使用外部资源(例如,webservice或api )时,最简单的方法是通过发出返回有效响应的假调用来模拟它的功能,然后在此上运行代码。然后,您将能够测试您的代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25420363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档