草庐IT

test-driven-development-with-refa

全部标签

unit-testing - 如何在我的 go 测试中实现 faker?

我正在尝试学习Go并编写我的第一个测试。我想弄清楚如何实现一个伪造者来测试terraform上的CRUD。我已经弄清楚如何导入faker并创建要使用的变量。我尝试使用fmt.Println来查看它是否生成,但是如果它是一个测试,我在哪里可以看到Println。当我去测试时它不打印。functestCheckTritonUserDelete(s*terraform.State)error{fmt.Println("INsidetestCheckTritonUserDelete")fmt.Println(fake.UserName())returnnil//这是我要打印的函数

unit-testing - 在单元测试中使用随机数与硬编码值

这个问题在这里已经有了答案:WhatarethedownsidesusingrandomvaluesinUnitTesting?(11个答案)RandomdatainUnitTests?(20个答案)关闭3年前。当我写测试的时候,我喜欢用随机数来计算东西。例如funcinit(){rand.Seed(time.Now().UnixNano())}funcTestXYZ(t*testing.T){amount:=rand.Intn(100)cnt:=1+rand.Intn(10)fori:=0;i当然有缺点expected:=calcExpected(amount,cnt)因为需要根据随

parsing - 为什么在 Go 中使用 := with fmt. Scanf 总是返回 1?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭5年前。Improvethisquestion代码如下:varninta,_:=fmt.Scanf("%d",&n)那么a==1,n已经通过输入改变了它的值。为什么在Go中使用:=和fmt.Scanf总是返回1?

testing - 我应该使用哪种方法来测试 golang 中的 func main()?

我在main.go中有一个函数main()可以完成这项工作,所有其他函数都在它下面(我没有在这里包括它们)。因此,当我为main中包含的所有funcs编写测试时,我可以测试它们。但是代码覆盖率很低,因为它表明我没有覆盖main函数中的代码。我知道测试库中有一个TestMain函数可以完成这项工作,但我就是不知道如何让它工作,以便测试涵盖funcmain()。下面是我的main()函数,它没有被测试覆盖...funcmain(){c,err:=getConfig()iferr!=nil{log.Fatal(err)}slideshows,err:=getSlideshows(c)ifer

multithreading - 戈朗 : can WaitGroup leak with go-routines

我计划实现一个go-routine并有一个sync.WaitGroup同步创建的go-routine的结尾。我基本上使用go创建了一个线程.所以它是这样的:main(){varwgsync.WaitGroupfor{gomyThread(wg)wg.Add(1)}wg.wait()}myThread(wgsync.WaitGroup){deferwg.Done()}我之前曾与pthread_create合作过在某些情况下确实无法创建线程。在这种情况下,是否可能针对上述gomyThread(wg)无法启动和/或运行wg.Done()例程的其余部分是否正常运行?如果是这样,将报告什么以及如

戈朗 : appending slices with or w/o allocation

Go的append()函数仅在给定slice的容量不足时分配新的slice数据(另请参见:https://stackoverflow.com/a/28143457/802833)。这可能会导致意外行为(至少对我这个golang新手来说):packagemainimport("fmt")funcmain(){a1:=make([][]int,3)a2:=make([][]int,3)b:=[][]int{{1,1,1},{2,2,2},{3,3,3}}common1:=make([]int,0)common2:=make([]int,0,12)//providesufficientcap

unit-testing - 如何为一小时后函数返回时间编写单元测试

我有以下函数,它在当前时间添加给定的小时数并在中返回新时间funcgetExpiryTime(hourint)*string{constlayout="2006-01-02T15:04:05Z"expiryTime:=time.Now().Local().Add(time.Hour*time.Duration(hour))returnaws.String(expiryTime.Format(layout))}为此功能编写单元测试的最佳方法是什么? 最佳答案 您可以尝试模拟时间提供程序并在您的模拟中设置time.Now()函数以返回您

unit-testing - 去单元测试无法加载文件

1、gotestconfig_test.go,总是文件,error:openconf/config.yml:Thesystemcannotfindthepathspecified2、源码ok3、gotestfile如何在不同目录下成功 最佳答案 测试期间您的工作目录不同。您可能需要动态计算配置目录路径的解决方法,例如:http://www.kaihag.com/external-assets-working-directories-and-go/ 关于unit-testing-去单元测试

algorithm - 如何解决 MaxCounters - Coditility with Golang

你得到一个计数器数组N,从零开始。您有一个要在N数组上执行的操作列表A。每个Action都是一个intx即A=[1,5,3]对于A中的每个k作为x操作如果x否则设置所有N项的最大值为N你应该在最后一个Action之后返回计数器数组ExerciseLink 最佳答案 第一个更简单的解决方案由于时间复杂度不会100%通过创建counters大小为len(A)的全为0的数组每个idx,action在A如果actionlen(N)counters[idx-1]++其他maxVal=max(counters)现在将maxmaxVal设置为所有

unit-testing - 错误 : suite. go:61: test paniced: reflect: Call with too few input arguments

我正在golang中设置单元测试。但是现在我在运行gotest-v时遇到错误。我想解决这个错误并使测试成功。article├client├api│├main.go│├contoroller││├contoroller.go││└contoroller_test.go│├service││├service.go││└service_test.go│├dao││├dao.go││└dao_test.go│├s3││├s3.go││└s3_test.go│├go.mod│├go.sum│└Dockerfile├nginx└docker-compose.yml现在我正在为service.go设