我有兩個檔案 main.go 和 main_test.go
在 main.go 下
package main
import (
"fmt"
"os"
"strconv"
)
func Sum(a, b int) int {
return a b
}
func main() {
a, _ := strconv.Atoi(os.Args[1])
b, _ := strconv.Atoi(os.Args[2])
fmt.Println(Sum(a, b))
}
在 main_test.go 我有
package main
import (
"flag"
"fmt"
"testing"
)
func TestMain(t *testing.M) {
args1 := flag.Arg(0)
args2 := flag.Arg(1)
fmt.Print(args1, args2)
os.Args = []string{args1, args2}
t.Run()
}
我正在嘗試通過 go test main_test.go -args 1 2 -v 運行 go 測驗,但我沒有得到正確的輸出,任何人都可以指導我如何撰寫用于測驗 main 函式的命令以使其正常運行。
uj5u.com熱心網友回復:
具有常量示例(測驗用例)的測驗比在測驗中使用任何互動式事物更有效率,因為您可能需要它多次自動運行。你為什么不像我的例子那樣做呢?
main_test.go:
package main
import (
"testing"
)
func TestMain(t *testing.T) {
for _, testCase := range []struct {
a, b, result int
}{
{1, 2, 3},
{5, 6, 11},
{10, 2, 12},
} {
if Sum(testCase.a, testCase.b) != testCase.result {
t.Fail()
}
}
}
看看這個例子也很好: Go By Example: Testing
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/409660.html
標籤:
