培训首页  >  软件开发新闻  >  兄弟连区块链技术培训分享Go语言测试用例

兄弟连区块链技术培训分享Go语言测试用例

[2018-08-22 18:14:19] 浏览量:96 来源:

北京兄弟连IT

  Go语言经过十余年的发展,已成为流行的新兴语言。目前,Go语言已成为云计算领域的选语言,且随着近几年区块链的流行,作为底层开发语言的Go再次火爆成为区块链领域编程语言,IBMFabic等重量级的区块链项目都是基于Go语言开发的。

 

  殊不知,Go语言可开发的应用项目还有很多。除云计算、区块链等开源项目外,还包含Devops、人工智能、游戏、存储引擎、Web、系统/命令行工具、中间件、测试/持续交付、文件系统等各方面的开源项目。

 

编写单元测试用例

 

文件名必须以'_test.go'结尾

必须import "testing"这个包

测试用例会按照源代码中写的顺序依次执行

测试函数'TestXxx(t *testing.T)'中的参数是‘testing.T,我们可以用该类型来记录错误或者是测试状态

测试格式:func TestXxx(t *testing.T),'Xxx'部分可以为任意的字母数字组合,但是字母不能是小写字母[a-z]

函数中通过调用'testing.T''Error''Errorf''FailNow''Fatal'、‘FatalIf’方法,说明测试用例不通过,调用''Log'方法用来记录测试的信息

编写压力测试

 

压力测试用例必须遵循如下格式,其中XXX可以是任意字母数字的组合,但是字母不能是小写字母

func BenchmarkXXX(b *testing.a) {...}

go test 不会默认执行压力测试的函数,如果要执行压力测试需要带上参数。-test.bench,语法: -test.bench="test_name_regex" ,例如 go test -test.bench=".*"表示测试全部的压力测试函数

在压力测试用例中,需要才循环体内使用testing.B.N,以使测试用例正常运行

文件名也必须以_test.go结尾

单元测试用例

 

源码

 

    package gotest

 

    import(

    )

 

    func Add(a, b float64) float64 {

        return a +  b

    }

测试用例

 

package gotest

 

import (

    "testing"

)

 

func Test_Add_1(t *testing.T) {

    if i := Add(6,2); i != 8 {

        t.Error("fail")

    } else {

        t.Log("pass")

    }

}

 

func Test_Add_2(t *testing.T) {

    if i := Add(6,2); i == 8 {

        t.Log("pass")

    } else {

        t.Error("fail")

    }

}

运行测试用例

 

    go test -v

测试用例执行结果

 

=== RUN   Test_Add_1

--- PASS: Test_Add_1 (0.00s)

    gotest_test.go:11: pass

=== RUN   Test_Add_2

--- PASS: Test_Add_2 (0.00s)

    gotest_test.go:17: pass

PASS

ok      github.com/shadowsocks/shadowsocks-go/sample-config/gotest  0.001s

压力测试用例

 

源码

 

package gotest

 

import(

    "testing"

)

 

func Benchmark_Add(b *testing.B) {

    for i := 0; i < b.N ; i++ {

        Add(3,4)

    }

}

 

func Benchmark_TimeConsumingFunction(b *testing.B) {

    b.StopTimer() //调用该函数停止压力测试的时间计数

    //做一些初始化工作,这些时间不影响我们测试函数本身的性能

    b.StartTimer()

 

    for i := 0; i < b.N; i++ {

        Add(5,6)

    }

}

运行结果

 

Benchmark_Add-4                         2000000000           0.38 ns/op

Benchmark_TimeConsumingFunction-4       2000000000           0.38 ns/op

PASS

ok      github.com/shadowsocks/shadowsocks-go/sample-config/gotest  1.594s

 

条显示Benchmark_add-4执行了20亿次,每次执行时间为0.38纳秒

第二条也一样

文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息