首页 > 编程语言 > 详细

单元测试,测试用例-GO语言

时间:2021-01-24 21:56:23      阅读:35      评论:0      收藏:0      [点我收藏+]

文件夹目录

split_string/split.go

split_string/split_test.go

 

  运行测试函数

package split_string

import (
	"reflect"
	"testing"
)

//	单元测试代码可以和测试代码放到一起,用同样的包名

//	以测试代码名开头,以 _test.go 结尾哦

//	测试用例函数名必须以Test开头,必须接收一个*testing.T类型参数

//	在终端输入 go test 运行 go test -v 获得更多信息

func TestSplit(t *testing.T) {
	got := Split("babcbef", "b")         //程序输出结果,以冒号分隔
	want := []string{"", "a", "c", "ef"} //期望结果

	//reflect 反射,DeepEqual深度相等
	//slice 不能直接比较,借助反射包中的方法比较
	if !reflect.DeepEqual(got, want) {
		//测试用例失败了!!!
		t.Errorf("want:%v but got:%v\n", want, got)
	}
}
func Test2Split(t *testing.T) {
	got := Split("a:b:c", ":")       //程序输出结果,以冒号分隔
	want := []string{"a", "b", "cc"} //期望结果

	//reflect 反射,DeepEqual深度相等
	//slice 不能直接比较,借助反射包中的方法比较
	if !reflect.DeepEqual(got, want) {
		//测试用例失败了!!!
		t.Errorf("want:%v but got:%v\n", want, got)
	}
}

  调用函数

package split_string

import (
	"strings"
)

//切割字符串

func Split(str string, sep string) []string {
	//str:"babcbef" sep="b" 结果[a cdef]
	var ret []string
	index := strings.Index(str, sep) //找到 sep 下标
	for index >= 0 {
		ret = append(ret, str[:index])  //前面一段追加 ret
		str = str[index+1:]             //后面一段赋值 str
		index = strings.Index(str, sep) //继续找下标切,如果还含有,for循环
	}
	ret = append(ret, str)
	return ret
}

  

单元测试,测试用例-GO语言

原文:https://www.cnblogs.com/shijieziben/p/14322137.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!