Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan. | |
| // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ | |
| // Test of echo command. Run with: go test gopl.io/ch11/echo | |
| //!+ | |
| package main | |
| import ( | |
| "bytes" | |
| "fmt" | |
| "testing" | |
| ) | |
| func TestEcho(t *testing.T) { | |
| var tests = []struct { | |
| newline bool | |
| sep string | |
| args []string | |
| want string | |
| }{ | |
| {true, "", []string{}, "\n"}, | |
| {false, "", []string{}, ""}, | |
| {true, "\t", []string{"one", "two", "three"}, "one\ttwo\tthree\n"}, | |
| {true, ",", []string{"a", "b", "c"}, "a,b,c\n"}, | |
| {false, ":", []string{"1", "2", "3"}, "1:2:3"}, | |
| } | |
| for _, test := range tests { | |
| descr := fmt.Sprintf("echo(%v, %q, %q)", | |
| test.newline, test.sep, test.args) | |
| out = new(bytes.Buffer) // captured output | |
| if err := echo(test.newline, test.sep, test.args); err != nil { | |
| t.Errorf("%s failed: %v", descr, err) | |
| continue | |
| } | |
| got := out.(*bytes.Buffer).String() | |
| if got != test.want { | |
| t.Errorf("%s = %q, want %q", descr, got, test.want) | |
| } | |
| } | |
| } | |
| //!- |