我将如何针对来自 fmt.Scan/Scanf/Scanln 的用户输入进行测试?
例如,我如何测试函数输入将接受来自 STDIN 的“4 5\n”和“1 2 3 4\n”并返回 n == 5 和数组 == [1, 2, 3, 4]。
package main
import (
"fmt"
)
// input gets an array from the user.
func input() (m int, array []int) {
fmt.Print("Enter the size of the array, n, and the difference, m: ")
var n int
_, err := fmt.Scanf("%d %d", &n, &m)
if err != nil {
panic(err)
}
fmt.Print("Enter the array as a space seperated string: ")
array = make([]int, n)
for i := 0; i < n; i++ {
_, _ = fmt.Scan(&array[i])
}
return m, array
}
func main() {
m, array := input()
fmt.Println(m, array)
}