Я пытаюсь написать простой тест, чтобы лучше понять тестирование 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 Я думаю, что получил все, что мне нужно, но не уверен, почему тест не выполняется.