在表格驱动测试中,遇到函数接受可变参数列表,struct如何定义

来源:9-1 测试

JohnnyLeaf

2020-07-28

老师你好:

在表格驱动测试中,如果被测试的函数的某个参数是一个可变参数列表(类似python的*args),改如何在(tests := []struct{numners ??})结构体中定义这个参数呢?

例如,我的某个函数:


func Sums(numbers ...[]int) sums []int {
	lengthOfNumbers := len(numbers)
	sums := make([]int, lengthOfNumbers)
	...计算多个slice的和,并赋值给sums。
	return sums
}

此时我改如何在测试中定义这个结构体?

func TestSums(t *testing.T) {
	tests := []struct{
		...?可变列表怎么写???
		sums []int
	}{
		{[1,2,3], [6]}
		{[1,2,3], [4, 5, 6], [6, 15]}
	}
}
写回答

1回答

ccmouse

2020-07-28

我们就定义成 sums [][]int

tests := []struct{
sums [][]int
}{
{[[1,2,3], [6]]}
{[[1,2,3], [4, 5, 6], [6, 15]]}
}

在调用时,使用

t.sums...

传参即可。

1
2
JohnnyLeaf
老师!!感谢!
2020-07-29
共2条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程