草庐IT

statistical-test

全部标签

unit-testing - Golang 中的编码/解码时间对象意外失败

解码编码的时间对象失败,因为有几个字符测试声明如下://valuesnow:=time.Now()timeToJSON,_:=json.Marshal(now)varobjtime.Timejson.Unmarshal(timeToJSON,&obj)然后做如下测试逻辑:if!assert.Equal(t,now.String(),obj.String()){t.FailNow()}预期要通过的测试,并且两个对象要相等实际失败了:---FAIL:TestFromJSON(0.00s)D:\dev2017\GO\src\ezsoft\apiserver_sdk\model\delete\

unit-testing - 如何测试 ioutil.ReadFile 和 os.Stat?

我有以下功能:funcGetDataFromFile(pathstring)([]byte,error){_,err:=os.Stat(path)iferr!=nil{returnnil,err}data,err:=ioutil.ReadFile(path)iferr!=nil{returnnil,err}returndata,nil}我想在函数ioutil.ReadFile和os.Stat(path)抛出错误时对其进行测试。我知道我可以为os.Stat(path)创建不存在的路径,但是如何在没有“解决方法”和猜测函数工作方式的情况下测试此类函数?问候。 最

testing - 当测试文件在模块中时,如何运行 `go test`?

当您将一个模块引入到您的项目中时,您如何在该模块中运行测试用例?即我做了:gogetmy.repo.com/repo/mymodule然后尝试测试其中的内容:server>gotestsrc/my.repo.com/repo/mymodule/my_test.go#command-line-argumentssrc/my.repo.com/repo/mymodule/article_test.go:4:2:cannotfindpackage"mymodule"inanyof:我们是否应该单独检查我们的模块并以这种方式进行测试?我不知道该怎么办。似乎当我gorun它知道如何找到我获取的模

unit-testing - 是否可以对我的包不导入特定包进行单元测试?

我想确保我的Go包使用“dal”包提供的var实例,并且不会意外地直接导入和使用数据库访问包。我想我可以在源代码上进行正则表达式搜索,但我想知道是否有办法通过标准Go测试来确保规则?只是想知道我要做什么:接口(interface)包:packagedaltypeUserDalinterface{GetUser(idint)User}实现包:packagedal_db_specificimport("some_db""dal")typeUserDalDbSpecificstruct{}func(_UserDalDbSpecific)GetUser(idint)User{some_db.e

testing - 如何仅在测试时允许一个包访问另一个包的未导出数据?

在TheGoProgrammingLanguage的11.2.4节中,有一个外部测试通过声明访问fmt.isSpace()的示例fmt的export_test.go文件中的IsSpace。这似乎是完美的解决方案,所以这就是我所做的:a/a.go:packageavarxintfuncSet(vint){x=v}a/a_test.go:packageaimport"testing"funcTestSet(t*testing.T){Set(42)ifx!=42{t.Errorf("x==%d(expected42)",x)}}funcGet()int{returnx}(在a/中运行gote

testing - 如何记录测试时间

我写了两个函数,现在我很想知道哪个更快。我怎样才能找出哪个更快?如何通过测试找出哪个更快?是否为此提供一个计时器? 最佳答案 更好的是,Go提供了内置的基准测试和测试功能!创建一个名为something_test.go的文件(必须有_test部分)。funcBenchmarkFunc1(b*testing.B){fori:=0;i然后只需运行:gotest-bench=。-benchmem它将打印每个函数花费的时间和内存使用/分配。引用:http://golang.org/pkg/testing/http://dave.cheney

testing - golang TestMain() 函数设置测试无法访问的变量

我有以下TestMain函数:funcTestMain(m*testing.M){db:="[working_db_connection]"dbInstance,_:=InitializeRepo(db,2)runTests:=m.Run()os.Exit(runTests)}和下面的示例测试funcTestSomeFeature(t*testing.T){fmt.Println(dbInstance)}函数TestSomeFeature确实运行,但表示dbInstance未定义。为什么这不能访问变量?从示例中,我看到使用此语法访问TestMain中的变量et。

testing - 测试 '-timeout 0' 未反射(reflect)在执行中

我正在使用Go1.9.2版本并使用-timeout0标志调用禁用超时的测试。gotestmy_module-runTestModule-v--race-timeout0但是测试执行在默认超时10m后超时。***Testkilled:rantoolong(10m0s). 最佳答案 它是test.timeout即gotestmy_module-runTestModule-v--race-test.timeout0 关于testing-测试'-timeout0'未反射(reflect)在执行中

unit-testing - 真正的单元测试总是可以并行运行吗?

背景:我正在编写大量go代码,使用gotest工具和提供的"testing"包进行测试。我所做的大部分测试都是TDD规程中的单元测试。这些被测试的“单元”永远不允许依赖于有状态的外部性,如持久存储、网络跃点等,但通常在“构造函数/构建器”函数中接收这些外部性的虚假内存实现(是的,我知道它们不是传统意义上的构造函数)。问题:gotest工具总是以相同的确定顺序运行测试函数,这一直困扰着我。在某些情况下,这允许竞争条件隐藏在代码中。找到这些错误的一种方法是设置-race标志。另一个可能是始终并行运行单元测试......问题:是否存在曾经孤立单元测试不能或不应该总是并行运行的情况(使用-并行

testing - 使用测试包在 golang 中导入周期

我正在尝试重构一些测试代码,并且在两个包中我需要做同样的事情(连接到数据库)。我正在获取一个导入周期。我明白为什么我不能这样做,但我想知道最好的解决方法是什么。一些细节,我有三个包:testutils、client、engine。在引擎中,我定义了一个接口(interface)和实现(均已导出)。packageenginetypeinterfaceQueryEngine{//...}typestructMagicEngine{//...}然后在testutils包中我将创建一个MagicEngine并尝试返回它。packagetestutilsfuncCreateAndConnect(