【发布时间】:2019-09-21 14:22:59
【问题描述】:
我正在尝试编写一个简单的测试来更好地理解 golang 测试,但测试用例似乎没有执行,我预计它会失败。
在我的main.go 我有:
package main
import "fmt"
func main() {
fmt.Println("run")
}
func twoSum(nums []int, target int) []int {
lookup := make(map[int]int)
for i, n := range nums {
c := target - n
if j, ok := lookup[c]; ok {
return []int{j, i}
}
lookup[n] = i
}
return []int{}
}
然后在我的main_test.go 我有这个:
package main
import (
"reflect"
"testing"
)
var twoSumsCases = []struct{
input []int
target int
expected []int
} {
{
[]int{2,7,11,15},
9,
[]int{0,3},
},
}
func TesttwoSum(t *testing.T) {
for _, tc := range twoSumsCases {
actual := twoSum(tc.input, tc.target)
eq := reflect.DeepEqual(actual, tc.expected)
if eq {
t.Log("expected: ", tc.expected, " actual: ", actual)
} else {
t.Error("expected: ", tc.expected, " actual: ", actual)
}
}
}
然后当我运行go test -v...它告诉我testing: warning: no tests to run。我以此为例:https://blog.alexellis.io/golang-writing-unit-tests/...and 我想我得到了我需要的一切,但不确定为什么测试没有执行。
【问题讨论】:
标签: go