早餐店
天晴日丽.
小白早早起来洗漱完毕滚去上班, 途中一如既往的到路边的一家早餐店买包子和豆浆.
早餐店不大, 是老板和老板娘俩人经营的, 但生意不错.
看着忙里忙外的老板和老板娘, 小白默默组织起了场景代码:
// case7_test.go
package concurrent
import (
"sync"
"testing"
)
// 测试早餐店
func TestBreakfastShop(t *testing.T) {
t.Log("早餐店开门啦.")
// 声明一个信道
ch := make(chan int, 100)
wg := sync.WaitGroup{}
wg.Add(2)
// 老板在后厨造包子
go func(waitGroup *sync.WaitGroup, channel chan int) {
for i := 1; i <= 100; i++ {
t.Logf("老板造出了第 %d 个包子\n", i)
channel <- i
}
waitGroup.Done()
}(&wg, ch)
// 老板娘在前台卖包子
go func(waitGroup *sync.WaitGroup, channel chan int) {
for i, _ := <-channel; i <= 100; i++ {
t.Logf("老板娘卖出了第 %d 个包子", i)
}
waitGroup.Done()
}(&wg, ch)
wg.Wait()
t.Log("卖光啦, 早餐店收摊了.")
}
执行测试
go test -v case7_test.go
不出意外的话, 会输出以下内容
=== RUN TestBreakfastShop
--- PASS: TestBreakfastShop (0.00s)
case7_test.go:10: 早餐店开门啦.
case7_test.go:19: 老板造出了第 1 个包子
case7_test.go:19: 老板造出了第 2 个包子
case7_test.go:19: 老板造出了第 3 个包子
case7_test.go:19: 老板造出了第 4 个包子
case7_test.go:19: 老板造出了第 5 个包子
case7_test.go:19: 老板造出了第 6 个包子
case7_test.go:19: 老板造出了第 7 个包子
case7_test.go:19: 老板造出了第 8 个包子
case7_test.go:19: 老板造出了第 9 个包子
case7_test.go:19: 老板造出了第 10 个包子
case7_test.go:19: 老板造出了第 11 个包子
case7_test.go:19: 老板造出了第 12 个包子
case7_test.go:19: 老板造出了第 13 个包子
case7_test.go:19: 老板造出了第 14 个包子
case7_test.go:19: 老板造出了第 15 个包子
case7_test.go:28: 老板娘卖出了第 1 个包子
case7_test.go:28: 老板娘卖出了第 2 个包子
case7_test.go:28: 老板娘卖出了第 3 个包子
case7_test.go:28: 老板娘卖出了第 4 个包子
case7_test.go:28: 老板娘卖出了第 5 个包子
case7_test.go:28: 老板娘卖出了第 6 个包子
case7_test.go:28: 老板娘卖出了第 7 个包子
case7_test.go:28: 老板娘卖出了第 8 个包子
case7_test.go:28: 老板娘卖出了第 9 个包子
case7_test.go:28: 老板娘卖出了第 10 个包子
case7_test.go:28: 老板娘卖出了第 11 个包子
case7_test.go:28: 老板娘卖出了第 12 个包子
case7_test.go:28: 老板娘卖出了第 13 个包子
case7_test.go:28: 老板娘卖出了第 14 个包子
case7_test.go:28: 老板娘卖出了第 15 个包子
case7_test.go:28: 老板娘卖出了第 16 个包子
case7_test.go:28: 老板娘卖出了第 17 个包子
case7_test.go:28: 老板娘卖出了第 18 个包子
case7_test.go:19: 老板造出了第 16 个包子
case7_test.go:19: 老板造出了第 17 个包子
case7_test.go:19: 老板造出了第 18 个包子
case7_test.go:19: 老板造出了第 19 个包子
case7_test.go:19: 老板造出了第 20 个包子
case7_test.go:19: 老板造出了第 21 个包子
case7_test.go:19: 老板造出了第 22 个包子
case7_test.go:28: 老板娘卖出了第 19 个包子
case7_test.go:28: 老板娘卖出了第 20 个包子
case7_test.go:28: 老板娘卖出了第 21 个包子
case7_test.go:28: 老板娘卖出了第 22 个包子
case7_test.go:28: 老板娘卖出了第 23 个包子
case7_test.go:28: 老板娘卖出了第 24 个包子
case7_test.go:28: 老板娘卖出了第 25 个包子
case7_test.go:28: 老板娘卖出了第 26 个包子
case7_test.go:28: 老板娘卖出了第 27 个包子
case7_test.go:28: 老板娘卖出了第 28 个包子
case7_test.go:28: 老板娘卖出了第 29 个包子
case7_test.go:28: 老板娘卖出了第 30 个包子
case7_test.go:28: 老板娘卖出了第 31 个包子
case7_test.go:28: 老板娘卖出了第 32 个包子
case7_test.go:28: 老板娘卖出了第 33 个包子
case7_test.go:28: 老板娘卖出了第 34 个包子
case7_test.go:28: 老板娘卖出了第 35 个包子
case7_test.go:28: 老板娘卖出了第 36 个包子
case7_test.go:28: 老板娘卖出了第 37 个包子
case7_test.go:28: 老板娘卖出了第 38 个包子
case7_test.go:28: 老板娘卖出了第 39 个包子
case7_test.go:28: 老板娘卖出了第 40 个包子
case7_test.go:28: 老板娘卖出了第 41 个包子
case7_test.go:28: 老板娘卖出了第 42 个包子
case7_test.go:28: 老板娘卖出了第 43 个包子
case7_test.go:28: 老板娘卖出了第 44 个包子
case7_test.go:28: 老板娘卖出了第 45 个包子
case7_test.go:28: 老板娘卖出了第 46 个包子
case7_test.go:19: 老板造出了第 23 个包子
case7_test.go:19: 老板造出了第 24 个包子
case7_test.go:19: 老板造出了第 25 个包子
case7_test.go:19: 老板造出了第 26 个包子
case7_test.go:19: 老板造出了第 27 个包子
case7_test.go:19: 老板造出了第 28 个包子
case7_test.go:19: 老板造出了第 29 个包子
case7_test.go:19: 老板造出了第 30 个包子
case7_test.go:19: 老板造出了第 31 个包子
case7_test.go:19: 老板造出了第 32 个包子
case7_test.go:19: 老板造出了第 33 个包子
case7_test.go:28: 老板娘卖出了第 47 个包子
case7_test.go:28: 老板娘卖出了第 48 个包子
case7_test.go:28: 老板娘卖出了第 49 个包子
case7_test.go:28: 老板娘卖出了第 50 个包子
case7_test.go:28: 老板娘卖出了第 51 个包子
case7_test.go:28: 老板娘卖出了第 52 个包子
case7_test.go:28: 老板娘卖出了第 53 个包子
case7_test.go:28: 老板娘卖出了第 54 个包子
case7_test.go:28: 老板娘卖出了第 55 个包子
case7_test.go:28: 老板娘卖出了第 56 个包子
case7_test.go:28: 老板娘卖出了第 57 个包子
case7_test.go:28: 老板娘卖出了第 58 个包子
case7_test.go:28: 老板娘卖出了第 59 个包子
case7_test.go:28: 老板娘卖出了第 60 个包子
case7_test.go:28: 老板娘卖出了第 61 个包子
case7_test.go:28: 老板娘卖出了第 62 个包子
case7_test.go:28: 老板娘卖出了第 63 个包子
case7_test.go:28: 老板娘卖出了第 64 个包子
case7_test.go:28: 老板娘卖出了第 65 个包子
case7_test.go:28: 老板娘卖出了第 66 个包子
case7_test.go:28: 老板娘卖出了第 67 个包子
case7_test.go:28: 老板娘卖出了第 68 个包子
case7_test.go:28: 老板娘卖出了第 69 个包子
case7_test.go:28: 老板娘卖出了第 70 个包子
case7_test.go:28: 老板娘卖出了第 71 个包子
case7_test.go:28: 老板娘卖出了第 72 个包子
case7_test.go:28: 老板娘卖出了第 73 个包子
case7_test.go:28: 老板娘卖出了第 74 个包子
case7_test.go:28: 老板娘卖出了第 75 个包子
case7_test.go:28: 老板娘卖出了第 76 个包子
case7_test.go:28: 老板娘卖出了第 77 个包子
case7_test.go:19: 老板造出了第 34 个包子
case7_test.go:19: 老板造出了第 35 个包子
case7_test.go:19: 老板造出了第 36 个包子
case7_test.go:19: 老板造出了第 37 个包子
case7_test.go:19: 老板造出了第 38 个包子
case7_test.go:28: 老板娘卖出了第 78 个包子
case7_test.go:28: 老板娘卖出了第 79 个包子
case7_test.go:28: 老板娘卖出了第 80 个包子
case7_test.go:28: 老板娘卖出了第 81 个包子
case7_test.go:28: 老板娘卖出了第 82 个包子
case7_test.go:28: 老板娘卖出了第 83 个包子
case7_test.go:28: 老板娘卖出了第 84 个包子
case7_test.go:28: 老板娘卖出了第 85 个包子
case7_test.go:28: 老板娘卖出了第 86 个包子
case7_test.go:28: 老板娘卖出了第 87 个包子
case7_test.go:28: 老板娘卖出了第 88 个包子
case7_test.go:28: 老板娘卖出了第 89 个包子
case7_test.go:28: 老板娘卖出了第 90 个包子
case7_test.go:28: 老板娘卖出了第 91 个包子
case7_test.go:28: 老板娘卖出了第 92 个包子
case7_test.go:28: 老板娘卖出了第 93 个包子
case7_test.go:19: 老板造出了第 39 个包子
case7_test.go:19: 老板造出了第 40 个包子
case7_test.go:19: 老板造出了第 41 个包子
case7_test.go:19: 老板造出了第 42 个包子
case7_test.go:19: 老板造出了第 43 个包子
case7_test.go:19: 老板造出了第 44 个包子
case7_test.go:19: 老板造出了第 45 个包子
case7_test.go:19: 老板造出了第 46 个包子
case7_test.go:19: 老板造出了第 47 个包子
case7_test.go:19: 老板造出了第 48 个包子
case7_test.go:19: 老板造出了第 49 个包子
case7_test.go:19: 老板造出了第 50 个包子
case7_test.go:19: 老板造出了第 51 个包子
case7_test.go:19: 老板造出了第 52 个包子
case7_test.go:19: 老板造出了第 53 个包子
case7_test.go:19: 老板造出了第 54 个包子
case7_test.go:19: 老板造出了第 55 个包子
case7_test.go:19: 老板造出了第 56 个包子
case7_test.go:19: 老板造出了第 57 个包子
case7_test.go:19: 老板造出了第 58 个包子
case7_test.go:19: 老板造出了第 59 个包子
case7_test.go:19: 老板造出了第 60 个包子
case7_test.go:19: 老板造出了第 61 个包子
case7_test.go:19: 老板造出了第 62 个包子
case7_test.go:19: 老板造出了第 63 个包子
case7_test.go:19: 老板造出了第 64 个包子
case7_test.go:19: 老板造出了第 65 个包子
case7_test.go:19: 老板造出了第 66 个包子
case7_test.go:19: 老板造出了第 67 个包子
case7_test.go:19: 老板造出了第 68 个包子
case7_test.go:19: 老板造出了第 69 个包子
case7_test.go:19: 老板造出了第 70 个包子
case7_test.go:19: 老板造出了第 71 个包子
case7_test.go:19: 老板造出了第 72 个包子
case7_test.go:19: 老板造出了第 73 个包子
case7_test.go:19: 老板造出了第 74 个包子
case7_test.go:19: 老板造出了第 75 个包子
case7_test.go:19: 老板造出了第 76 个包子
case7_test.go:19: 老板造出了第 77 个包子
case7_test.go:19: 老板造出了第 78 个包子
case7_test.go:19: 老板造出了第 79 个包子
case7_test.go:19: 老板造出了第 80 个包子
case7_test.go:19: 老板造出了第 81 个包子
case7_test.go:19: 老板造出了第 82 个包子
case7_test.go:19: 老板造出了第 83 个包子
case7_test.go:28: 老板娘卖出了第 94 个包子
case7_test.go:28: 老板娘卖出了第 95 个包子
case7_test.go:28: 老板娘卖出了第 96 个包子
case7_test.go:19: 老板造出了第 84 个包子
case7_test.go:19: 老板造出了第 85 个包子
case7_test.go:19: 老板造出了第 86 个包子
case7_test.go:19: 老板造出了第 87 个包子
case7_test.go:19: 老板造出了第 88 个包子
case7_test.go:19: 老板造出了第 89 个包子
case7_test.go:19: 老板造出了第 90 个包子
case7_test.go:19: 老板造出了第 91 个包子
case7_test.go:19: 老板造出了第 92 个包子
case7_test.go:19: 老板造出了第 93 个包子
case7_test.go:19: 老板造出了第 94 个包子
case7_test.go:19: 老板造出了第 95 个包子
case7_test.go:19: 老板造出了第 96 个包子
case7_test.go:19: 老板造出了第 97 个包子
case7_test.go:19: 老板造出了第 98 个包子
case7_test.go:19: 老板造出了第 99 个包子
case7_test.go:19: 老板造出了第 100 个包子
case7_test.go:28: 老板娘卖出了第 97 个包子
case7_test.go:28: 老板娘卖出了第 98 个包子
case7_test.go:28: 老板娘卖出了第 99 个包子
case7_test.go:28: 老板娘卖出了第 100 个包子
case7_test.go:34: 卖光啦, 早餐店收摊了.
PASS
ok command-line-arguments 2.547s
默默用 Go 语言拟合了生活中的一个小场景, 小白拿着热乎的包子渐渐走远.