草庐IT

test_app

全部标签

testing - 如何使用标准的 Go 测试包实现 BDD 实践?

我想先写测试,再写让测试通过的代码。我可以这样写测试函数:funcTestCheckPassword(t*testing.T){isCorrect:=CheckPasswordHash("test","$2a$14$rz.gZgh9CHhXQEfLfuSeRuRrR5uraTqLChRW7/Il62KNOQI9vjO2S")ifisCorrect!=true{t.Errorf("Passwordiswrong")}}但我想为每个测试函数提供更多描述性信息。例如,我正在考虑为我的应用程序创建身份验证模块。现在,用简单的英语,我可以很容易地描述我对这个模块的要求:它应该接受一个非空字符串作

go test 无法使用命令 : go test file1_test. go file2.go 加载包

我正在编写单元测试。我将所有测试文件放在其他目录中。假设文件夹mypack。fun1_test.go和base.go文件夹下有两个文件。base.go具有与fun1_test.go相同的通用基本函数。base.go看起来像:packagemypack_testimport(.....)funcBase1(){//somecode}func1_test.go具有测试func1的函数。func1_test.go看起来像:packagemypack_testimport(.....)funcTestFunc1(){//somecodeBase1()//somecode}当我使用命令时gote

google-app-engine - 如何使用 "Put"获取 key 进入 RunInTransaction 而不是等到交易之后

我构建的数据库结构就像一条链,它看起来像这样:Clickheretoseethestructure这些部分在哪里:Clickheretoseewhatrepresentseachpart所以,当我想向我的链中添加新数据时:Clickheretoseethenewdatacoming,在我想要的任何地方,我可以通过更新结构的datastore.key轻松更新它们的值:clickheretoseetheupdate所以,在这种情况下,我只需要更新b.NextBlock、c.LastBlock、e.LastBlock和e.NextBlock一切都很好,但假设我想添加更多新数据Clickher

google-app-engine - Mux 和 http.HandleFunc 都适用于 Google App Engine 上的 helloworld 端点

我无法让名为emptysuccess的处理程序工作。我正在将sendgrid变成一个appspot微服务。迄今为止调用http://localhost:8080/emptysuccess返回404pagenotfound这个行为是真实的dev_appserver.py和真正的appspot.com。如何让/emptysuccess工作?packagesendmailimport("fmt""github.com/sendgrid/sendgrid-go""net/http""google.golang.org/appengine""github.com/gorilla/mux""goo

unit-testing - 用单元测试覆盖主函数中的代码

Golang显示我只有50%的覆盖代码,而且我看到main中的代码没有被覆盖,我尝试搜索但没有找到任何解释如何覆盖main中的代码的内容。ma​​in.gopackagemainfuncSum(xint,yint)int{returnx+y}funcmain(){Sum(5,5)}ma​​in_test.gopackagemainimport("testing")funcTestSum(t*testing.T){total:=Sum(5,5)iftotal!=10{t.Fail()}} 最佳答案 测试文件通常紧挨着他们测试的代码。根

google-app-engine - 云数据存储 client.GetAll 类型不匹配但 client.Get 有效

我正在appengine中编写一个go应用程序,它连接并返回来自datastore实体的一些信息。我遇到了一个问题,其中client.Get正在使用预定义结构,但client.GetAll抛出类型不匹配(反之亦然)。我对两者都使用以下结构:typemyStructstruct{IDint64Field1stringField2stringRelease_Datetime.Time}这在Release_Date被定义为time.Time时起作用(如果int则失败):k:=db.datastoreKey(id)myStruct:=&myStruct{}iferr:=db.client.Ge

google-app-engine - Appengine 应用程序部署 - 错误 : At least one handler must be provided

应用引擎入门。我的应用没有前端。它是一个tcp/udp套接字服务器。当我尝试部署时,标题中出现错误。处理程序是为了什么?它不是网络应用程序。appengine是服务器应用的错误谷歌服务吗? 最佳答案 您始终可以添加骨架Web处理程序(它可能只返回404)以使部署实用程序满意。但请注意,GAE标准环境沙箱对基于套接字的应用程序非常严格,请参阅Limitationsandrestrictions:AlthoughAppEnginesupportssockets,therearecertainlimitationsandbehaviors

google-app-engine - Google App Engine goapp "deploy"工作但 "serve"失败,这是怎么回事?

我今天开始使用GoogleAppEngine,所以希望答案对有经验的人来说是显而易见的。在简单地关注thismethod之后为了让AppEngine与CloudSQL接口(interface),我遇到了一个令人沮丧的问题:goappdeploy成功但goappserve失败(使用云外壳)。这是错误:XXXX@cloudshell:~/src/XXXX/app-engine(XXXX)$goappserveapp.yamlINFO2018-06-2107:29:08,115devappserver2.py:764]SkippingSDKupdatecheck.INFO2018-06-21

google-app-engine - 如何在本地谷歌应用引擎环境中创建拉/推队列

我需要在本地启动我的谷歌应用引擎项目。它在谷歌服务器上正常工作,但调试变得很痛苦,因为在每个修复上部署都需要很多时间。我几乎已经设法在本地启动它,但我不明白如何创建队列,这是必要的。我的步骤:运行dev_appserver.pyapp.yaml,遵循usinglocaldevelopmentserver指导。除队列外一切正常:_,err:=taskqueue.Add(u.Ctx(),task,queueName)exceptions.ThrowIfErr(true,"err_msg",err)throwPanic!UserMessage:,Error:APIerror1(taskque

unit-testing - 如何为单元测试模拟标准包函数

我有三个功能:funcIsSymlinks(pathstring){......}func(c*MyClass)myFunc1(pathstring){...morecode...morecodeifIsSymlinks(path){realPath:=filepath.EvalSymlinks(path)}...morecode...morecode}funcmyFunc2(pathstring){...morecode...morecodeifIsSymlinks(path){realPath:=filepath.EvalSymlinks(path)}...morecode...m