我有一个在GO中运行测试用例的场景,其中我知道在第二次或第三次尝试之后,一个用于例如: first_test.go的测试文件将通过,
假设它正在调用到数据库的连接,或者调用REST服务或任何其他典型场景。
正在遍历$go test命令中可用的选项,但许多尝试都没有可用的参数。是否有任何方法实现对文件的尝试或从静态文件中调用方法,其中包含任何尝试3-4次的方法,例如这个典型的文件场景:
func TestTry(t *testing.T) {
//Code to connect to a database
}发布于 2014-08-21 20:32:24
一个成语是使用构建标志。只为集成测试创建一个特殊的测试文件,然后添加
// +build integration
package mypackage
import testing然后运行用于集成的测试,运行:
go test -tags=integration然后你可以添加逻辑
// +build integration
package testing
var maxAttempts = flag.Int(...)
func TestMeMaybe(t *testing.T){
for i :=0 ; i < *maxAttempts; i++ {
innerTest()
}
}发布于 2014-08-21 07:21:43
不,这将是非常奇怪的:测试如果随机成功的话,有时有什么好处呢?
你为什么不在考试中“试一试”呢?真正的测试不是通过了,就是失败了,您需要处理有关“我需要‘尝试’调用这个外部资源多次来唤醒它的知识。”
发布于 2014-08-21 07:35:36
这不是测试的工作方式:测试的目的是告诉您代码是否按预期工作,而不是判断外部资源是否可用。
在使用外部资源(例如,webservice或api )时,最简单的方法是通过发出返回有效响应的假调用来模拟它的功能,然后在此上运行代码。然后,您将能够测试您的代码。
https://stackoverflow.com/questions/25420363
复制相似问题