将Go stdout与测试包进行比较

时间:2017-04-02 17:09:01

标签: go

我正在编写一个程序,它从文件中读取输入,解析该文件中的文本,然后将文本打印到stdout。我在文本文件中有预期的输出。我如何使用测试包将我的程序输出与文本文件中保存的预期输出进行比较?

我们的代码如下:

package main
import (
    "fmt"
    "log"
    "os"
    "bufio"
    "strings"
)

func main() {
    if len(os.Args) > 1 {
        file, err := os.Open(os.Args[1])
        if err != nil {
            log.Fatal(err)
        }
        defer file.Close()

        scanner := bufio.NewScanner(file)
        for scanner.Scan() {
            fmt.Println(strings.ToUpper(scanner.Text()))
        }
    } else {
        fmt.Println("Need input file as argument")
        os.Exit(1)
    }
}

这只是输入输入文本文件的每一行,将所有字母大写,然后打印每一行。

在我的输入文件中,我有:

hello, wOrlD!
foo
BAR

在我预期的输出文件中,我有:

HELLO, WORLD!
FOO
BAR

使用测试包将输出与预期输出文件进行比较的最佳方法是什么?

谢谢!

0 个答案:

没有答案