>

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

文件夹目录

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
}

  

posted @ 2021-01-24 20:17  仕杰资本  阅读(106)  评论(0)    收藏  举报
>