gopl-zh.github.com/vendor/gopl.io/ch9/bank1/bank_test.go

37 lines
583 B
Go

// Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan.
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
package bank_test
import (
"fmt"
"testing"
"gopl.io/ch9/bank1"
)
func TestBank(t *testing.T) {
done := make(chan struct{})
// Alice
go func() {
bank.Deposit(200)
fmt.Println("=", bank.Balance())
done <- struct{}{}
}()
// Bob
go func() {
bank.Deposit(100)
done <- struct{}{}
}()
// Wait for both transactions.
<-done
<-done
if got, want := bank.Balance(), 300; got != want {
t.Errorf("Balance = %d, want %d", got, want)
}
}