如何在 Go 中针对用户输入编写测试

我将如何针对来自 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)

}


动漫人物
浏览 192回答 2
2回答

米脂

你不能。至少不是那么容易,这样,这将是值得的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go