Go言語で標準入出力をスタブする方法

Pipeを駆使してスタブする

こんな感じの関数をテストしたい！って時です。

//標準入力を行番号付きで標準出力に出力する。refer to https://golang.org/pkg/bufio/#example_Scanner_linesfunchoge(){i:=0scanner:=bufio.NewScanner(os.Stdin)forscanner.Scan(){i++fmt.Println(i,scanner.Text())// Println will add back the final '\n'}iferr:=scanner.Err();err!=nil{fmt.Fprintln(os.Stderr,"reading standard input:",err)}}