go语言如何书写测试模块

如何在go语言中使用原生的testing模块书写测试模块

1.首先对于test模块如何去命名

    按照官方的规定在书写test包的时候,应该以源文件名加上_test.go的结尾来书写测试包。如原文件名为`main.go`则测试包按照规定应该写为`main_test.go`。当然假如你的这两个文件在同一个文件夹内是没有问题的,而且只要保证是_test结尾即可。

2.测试包的举例

源文件 main.go

package main

import "fmt"

func gotest(num int) {
    total := 0
    for n := 0; n < num; n ++ {
        total += n
        fmt.Println(total)
    }
}
func main() {
    gotest(100)
}

测试文件 main_test.go

package main

import (
    "testing"

)

func TestYou(t *testing.T) {  // 注意这里的TestYou必须采用驼峰命名法
    gotest(100)
}

3. 最后在终端执行 go test 即可,也可以明确指明文件 go test main.go main_test.go 或者 test go -v

4.如何有顺序的测试包中的代码呢?

对于test包中的代码执行是没有什么顺序可言的,但是若想让代码测试有顺序,比如在做web开发的时候,你应该先连接数据库等操作。所以这个时候就用到了t.run()这个函数了。

主函数 main.go

package main

import "fmt"

func gotest(num int) {
    total := 0
    for n := 0; n < num; n ++ {
        total += n
    }
    fmt.Println(total)
}
func main() {
    gotest(100)
}

测试函数 main_test.go

package main

import (
    "testing"

)

func testYou1(t *testing.T) {
    gotest(100)
}

func testYou2(t *testing.T) {
    gotest(100)
}
func TestAll(t *testing.T) {
    t.Run("testYou1", testYou1)
    t.Run("testYou2", testYou2)
}
此外TestMain()函数会最先执行

Benchmark压力测试

原文地址:https://blog.51cto.com/14263015/2399295

时间: 2024-10-05 00:14:12

go语言如何书写测试模块的相关文章

Nginx下用C语言写HTTP测试模块

1.创建模块目录 mkdir /work/nginx/modules/mytest 2.在该目录下创建两个文件 config和 ngx_http_mytest_module.c touch config ngx_http_mytest_module.c 3.代码如下 (1)config文件代码 ngx_addon_name=ngx_http_mytest_moduleHTTP_MODULES="$HTTP_MODULES ngx_http_mytest_module"NGX_ADDON

Go语言之Go语言 异常处理与测试

Go 语言异常处理与测试 Go 语言异常处理 Go语言没有结构化异常,使用 panic 抛出错误,recover 捕获错误. 异常的使用场景简单描述:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处理. panic: 1.内置函数 2.假如函数F中书写了panic语句,会终止其后要执行的代码,在panic所在函数F内如果存在要执行的defer函数列表,按照defer的逆序执行 3.返回函数F的调用者G,在G中,调用函数F语句之后的代码不会执行,假如

Java JNI调用c语言的dll测试

最近复习C语言和java语言(10年没用了,温习一下),用JNI调用C语言的dll测试,以前没做过,在网上找了很多,总结如下: 环境:windows 10(64位) + JDK(32位,版本1.7.0_79) + MinGW(32位),注意JDK和MinGW要么都是32位,要么都是64位,不能一个是32位另一个是64位. java和MinGW的环境配置在网上查找. [不用eclipse,用记事本手工编辑 .java和 .c 程序] 1.hello.java代码如下: 2.编译Hello.java

Python 语言搭建SELENIUM测试环境,搭建过程记录。

第一步,安装Python: 第二步,安装SetupTools: 第三步,安装Pip: 第四步,安装selenium(for python) 第五步,新建第一个基于Firefox的测试用例 上述 只是步骤,具体内容,明天补充,睡觉 咯--- Python 语言搭建SELENIUM测试环境,搭建过程记录.

OSG 中 相交测试 模块 工作流程及原理

主要涉及三个类: 1. osgUtil::PolytopeIntersector // 具体不同算法实现类 2. osgUtil::IntersectionVisitor //用来遍历节点树的每个节点 3.osg::Node * mNode;  //  你要做相交测试的根节点 先看用法: osg::ref_ptr<osgUtil::PolytopeIntersector> intersector = new osgUtil::PolytopeIntersector(osgUtil::Inter

bug管理工具之禅道的测试模块的使用

由于公司的bug管理工具是禅道,上手之前看了下禅道测试模块的使用,并记录了下来 角色:产品经理PO,项目经理PM,开发,测试 测试任务: bug: 1.维护bug视图模块:[测试]-[Bug]-左侧[维护模块]:维护软件每一个模块,即新建-删除-修改模块/子模块名称(如[首页]模块,[关于我们]模块) 2.提交bug:[测试]-[Bug]-[+提Bug] 注意点: (1)Bug的优先级别(见bug优先级别随笔)以及严重级别标准? (2)Bug负责人如何划分? (3)Bug修复截止时间如何确定?

NPM测试模块之rewire教程

摘要:有了rewire模块,再也不用担心测试私有函数了. 在玩转Node.js单元测试,我介绍了3个用于编写测试代码的NPM模块:Mocha, Should以及SuperTest.为了怂恿大家写单元测试,我再介绍一款神奇的NPM测试模块:rewire. GitHub仓库: Fundebug/rewire-tutorial rewire原理 对于技术,知其然,也应该知其所以然. 对于rewire,它的基本功能与require相同,都是用于导入模块,只是,它会为导入的模块添加两个特殊的函数:__ge

python中关于不执行if __name__ == &#39;__main__&#39;:测试模块的解决

1.新建测试脚本文件: 2.编辑测试脚本 import unittest import requests import json import HTMLTestRunner ur1 = 'http://118.178.247.67:8081/systLogonUser/adminLogon.do' headers = {'Content-Type':'application/x-www-form-urlencoded','Referer':'118.178.247.67'} data = { '

可以用py库: pyautogui (自动测试模块,模拟鼠标、键盘动作)来代替pyuserinput

PyAutoGUI 是一个人性化的跨平台 GUI 自动测试模块 pyUserInput模块安装前需要安装pywin32和pyHook模块.(想要装的看https://www.cnblogs.com/mapu/p/9235571.html) pyautogui 库 2017-10-4 python pip.exe install pyautogui python3.6下,直接就可以安装了,无须其它依赖 http://blog.csdn.net/astroboythu/article/details