草庐IT

test_dict

全部标签

unit-testing - 运行 goapp test 时 main.main not defined 错误

在我的GoogleAppEngineGo项目中,当我运行goapptest时,出现以下错误:runtime.main_main:main.main:notdefinedruntime.main_main:undefined:main.main因为它不是一个普通的go应用程序,而是一个GoogleAppEngine应用程序,它没有main.main(),所以我需要做什么才能运行测试? 最佳答案 goapptest不带任何参数将运行当前/工作目录中的单元测试。因此在运行测试之前,导航到包含*_test.go文件的文件夹,然后运行​​go

testing - Golang 有 libfaketime 替代品吗?

我想自动化一些测试,在这些测试中我必须操纵系统时间来检查用golang编写的程序的身份验证行为。根据thispost,libfaketime不适用于golang。有没有另一种方法可以实现我想用libfaketime做的事情?这是来自github的libfaketime功能的描述。libfaketimeinterceptsvarioussystemcallsthatprogramsusetoretrievethecurrentdateandtime.Itthenreportsmodified(faked)datesandtimes(asspecifiedbyyou,theuser)tot

unit-testing - Go 中的模拟随机生成器

出于测试目的,我想在Go中模拟随机数。所以我创建了随机界面。在单元测试期间,我返回标识函数,而为了实现,我使用rand包生成一个随机数。这是在Go中模拟随机数的正确方法吗?任何帮助表示赞赏。去Playground:https://play.golang.org/p/bibNnmY2t1g主要内容:packagemainimport("time""math/rand""fmt")funcinit(){rand.Seed(time.Now().UnixNano())}typeRandominterface{Uint(_uint)uint}typerndGeneratorfunc(nuint

unit-testing - 列出测试但不运行它们

如何在不运行的情况下列出可用于gotest的测试?我想知道存在哪些测试(包括子测试),以便我可以手动选择其中的一个子集以使用稍后的命令运行。我希望像gotest-l或gotest-n这样的东西。 最佳答案 在go1.9中,gotest命令接受一个新的-list标志,该标志将正则表达式作为参数并打印到标准输出任何测试的名称,基准测试或与之匹配的示例,无需运行它们。testflagsdocumentation可以在https://tip.golang.org下找到直到go1.9正式发布。 关

testing - golang中如何测试并发和锁?

我们正在尝试测试锁。基本上,有多个客户端试图获得对特定key的锁定。在下面的示例中,我们使用了键“x”。我不知道如何测试锁定是否有效。我只能阅读日志以确定它是否正常工作。正确的事件顺序应该是:client1获得key“x”的锁client2尝试获取键“x”上的锁(fmt.Println("2gettinglock"))-但被阻止并等待client1释放对键“x”的锁定client2获得key“x”的锁问题1:如何使流程自动化并将其转化为测试?问题2:测试并发/互斥锁定的一般技巧有哪些?funcTestLockUnlock(t*testing.T){client1,err:=NewCli

unit-testing - 在 Golang 子进程测试中使用命令行标志时如何生成单元测试覆盖率?

我对大部分代码进行了单元测试。但是我无法弄清楚如何为main包中的main()中的某些代码生成单元测试覆盖率。主要功能非常简单。它基本上是一个选择block。它读取标志,然后调用另一个函数/执行某些操作,或者只是在屏幕上打印帮助。但是,如果命令行选项设置不正确,它将退出并显示各种错误代码。因此,需要进行子流程测试。我尝试了子流程测试技术,但修改了代码,使其包含覆盖标志:cmd:=exec.Command(os.Args[0],"-test.run=TestMain-test.coverprofile=/vagrant/ucover/coverage2.out")这里是原始代码:http

unit-testing - 如何在 Go 中编写挂起的测试

是否有合法的方法来写下我打算稍后为其编写完整测试功能的测试用例?就像待定的mochajs测试一样? 最佳答案 Thepackagedocs用testing.(*T).Skip描述这样的例子:TestsandbenchmarksmaybeskippedifnotapplicablewithacalltotheSkipmethodof*Tand*B:funcTestTimeConsuming(t*testing.T){iftesting.Short(){t.Skip("skippingtestinshortmode.")}...}如果您

unit-testing - 为什么数据库类型在 GO 中不是接口(interface)

为了使代码更易于测试,强调使用接口(interface)而不是具体类型。我想知道为什么没有对sql包中的类型(如DB或Rows)执行此操作。为了模拟这些依赖关系,我必须创建自己的接口(interface),以便我可以编写单元测试(而不是集成测试)。面向数据库的代码不应该以这种方式进行测试吗? 最佳答案 在公共(public)API中公开接口(interface)而不是具体类型会增加在向接口(interface)添加方法时破坏其他人代码的风险。参见示例os.File.如果os.File是一个接口(interface),它将是一个具有1

java - 如何处理 Android/Maven 项目中缺少 src/test/java 源文件夹?

我对Maven与Android的结合还不是很有经验,所以我关注了these制作新的Android项目的说明。创建项目后,我收到以下错误消息:Project'xxx-1.0-SNAPSHOT'ismissingrequiredsourcefolder:'src/test/java'当我尝试使用New->Other->Java-Source文件夹和src/test/java添加新的源文件夹时,我收到另一条错误消息:Thefolderisalreadyasourcefolder.但我的项目中没有任何src/test/java文件夹。我应该如何处理?设置项目的干净方法是什么,因为我认为此说明中

python - 如果 Python dict 理解覆盖了键,则引发错误

如果它会覆盖键,有没有办法让字典理解引发异常?例如,我希望以下错误,因为键'a'有两个值:>>>{k:vfork,vin('a1','a2','b3')}{'a':'2','b':'3'}我意识到这可以通过for循环来完成。有没有办法在保持理解语法的同时做到这一点? 最佳答案 您可以使用带有辅助函数的生成器:classDuplicateKeyError(ValueError):passdefdict_no_dupl(it):d={}fork,vinit:ifkind:raiseDuplicateKeyError(k)d[k]=vre