草庐IT

power_unit

全部标签

unit-testing - 测试基于时间的字段是否有意义? (戈朗)

我有几个字段类型为time.Time的结构。我想知道测试它们的最佳做法是什么?我是否应该简单地将time.Time字段设置为nil并测试结构的其余部分(即reflect.DeepEqual)?否则有没有办法让时间确定?给定以下功能,您将如何测试它?typemystructstruct{sstringtimetime.Time}//myfuncreceivesastringandreturnsastructoftypemystruct//withthesamestringandthecurrenttime.funcmyfunc(sstring)mystruct{returnmystruc

unit-testing - 执行 Go 测试下划线 (_) 代替正确的路径

在此先感谢您的帮助。在我的Mac上,当我执行gotest./...时,输出中输出了正确的“路径”:okgithub.com/cnuss/server0.008sokgithub.com/cnuss/server/database0.008s?github.com/cnuss/server/handlers[notestfiles]okgithub.com/cnuss/server/stats0.014s但是,当我在Ubuntu14.04Trusty容器中构建时,路径已被替换为“_”(下划线):ok_/tmp/cnuss/server0.003sok_/tmp/cnuss/server/

unit-testing - 执行 Go 测试下划线 (_) 代替正确的路径

在此先感谢您的帮助。在我的Mac上,当我执行gotest./...时,输出中输出了正确的“路径”:okgithub.com/cnuss/server0.008sokgithub.com/cnuss/server/database0.008s?github.com/cnuss/server/handlers[notestfiles]okgithub.com/cnuss/server/stats0.014s但是,当我在Ubuntu14.04Trusty容器中构建时,路径已被替换为“_”(下划线):ok_/tmp/cnuss/server0.003sok_/tmp/cnuss/server/

unit-testing - 如何测试不太可能的并发场景?

例如,map访问是这样的:func(pool*fPool)fetch(urlstring)*ResultPromise{pool.cacheLock.RLock()ifrp,pres:=pool.cache[url];pres{pool.cacheLock.RUnlock()returnrp}pool.cacheLock.RUnlock()pool.cacheLock.Lock()ifrp,pres:=pool.cache[url];pres{pool.cacheLock.Unlock()//SkipaddingurlifsomeonesnuckitinbetweenRUnlockan

unit-testing - 如何测试不太可能的并发场景?

例如,map访问是这样的:func(pool*fPool)fetch(urlstring)*ResultPromise{pool.cacheLock.RLock()ifrp,pres:=pool.cache[url];pres{pool.cacheLock.RUnlock()returnrp}pool.cacheLock.RUnlock()pool.cacheLock.Lock()ifrp,pres:=pool.cache[url];pres{pool.cacheLock.Unlock()//SkipaddingurlifsomeonesnuckitinbetweenRUnlockan

unit-testing - 在 Go 中对 SSH 客户端进行单元测试

我用Go写了一个SSH客户端,我想写一些测试。问题是我以前从未真正编写过正确的单元测试,而且大多数教程似乎都侧重于为添加两个数字或其他玩具问题的函数编写测试。我读过有关模拟、使用接口(interface)和其他技术的信息,但我在应用它们时遇到了麻烦。此外,我的客户端将同时使用,以允许一次快速配置多个设备。不确定这是否会改变我编写测试的方式或是否会添加额外的测试。感谢您的帮助。这是我的代码。基本上,Device有4个主要功能:Connect、Send、Output/Err和Close分别用于连接到设备、向其发送一组配置命令、捕获session的输出以及关闭客户端。packagedevic

unit-testing - 在 Go 中对 SSH 客户端进行单元测试

我用Go写了一个SSH客户端,我想写一些测试。问题是我以前从未真正编写过正确的单元测试,而且大多数教程似乎都侧重于为添加两个数字或其他玩具问题的函数编写测试。我读过有关模拟、使用接口(interface)和其他技术的信息,但我在应用它们时遇到了麻烦。此外,我的客户端将同时使用,以允许一次快速配置多个设备。不确定这是否会改变我编写测试的方式或是否会添加额外的测试。感谢您的帮助。这是我的代码。基本上,Device有4个主要功能:Connect、Send、Output/Err和Close分别用于连接到设备、向其发送一组配置命令、捕获session的输出以及关闭客户端。packagedevic

unit-testing - 在包下运行 go test 时,如何在测试和覆盖率报告中跳过 go 文件

我想在运行gotest和覆盖时跳过某个包下的特定go文件。请找到下面的命令,我曾经在我的服务包下运行:cdsrc/service&&gotest--coverprofilecoverageService.out--coverpkg./. 最佳答案 不幸的是,没有简单的方法可以仅根据文件名跳过测试,但是,这里有三个可能有效的简单选项:1。使用正则表达式指定测试gotest命令支持-run运行时选项,它只运行满足正则表达式的测试:-runregexpRunonlythosetestsandexamplesmatchingtheregul

unit-testing - 在包下运行 go test 时,如何在测试和覆盖率报告中跳过 go 文件

我想在运行gotest和覆盖时跳过某个包下的特定go文件。请找到下面的命令,我曾经在我的服务包下运行:cdsrc/service&&gotest--coverprofilecoverageService.out--coverpkg./. 最佳答案 不幸的是,没有简单的方法可以仅根据文件名跳过测试,但是,这里有三个可能有效的简单选项:1。使用正则表达式指定测试gotest命令支持-run运行时选项,它只运行满足正则表达式的测试:-runregexpRunonlythosetestsandexamplesmatchingtheregul

unit-testing - 如何在 Go 子测试中添加超时?

我目前正在使用Go子测试并行运行多个测试。像这样的-funcTestGroupedParallel(t*testing.T){for_,tc:=rangetestCases{tc:=tc//capturerangevariablet.Run(tc.Name,func(t*testing.T){t.Parallel()ifgot:=foo(tc.in);got!=tc.out{t.Errorf("got%v;want%v",got,tc.out)}...})}}当我使用超时标志时,它会终止所有并行运行的测试。有什么办法可以让每个子测试超时?谢谢! 最佳答案