fmt.Scan/Scanf/Scanln의 사용자 입력에 대해 어떻게 테스트합니까?Go에서 사용자 입력에 대한 테스트 작성 방법
예를 들어 함수 입력이 STDIN에서 "4 5 \ n"및 "1 2 3 4 \ n"을 받아 들일 수 있는지 테스트하고 n == 5 및 array == [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)
}
감사합니다. 버그를 수정하고 게시물을 수정했습니다. – dmikalova