源码索引 / CURRENT IMPLEMENTATION
learning/go-patterns/patterns/ownership/ownership_test.go
34 行 · 点击行号可定位;函数链接随声明位置更新,不手填行号。
跳到函数 / 声明
package ownership
import "testing"
func TestDrainTransfersItemsAndEmptiesQueue(t *testing.T) {
var queue Queue
queue.Push("first")
queue.Push("second")
items := queue.Drain()
if got, want := len(items), 2; got != want {
t.Fatalf("len(Drain()) = %d, want %d", got, want)
}
if got := queue.Len(); got != 0 {
t.Fatalf("Len() after Drain() = %d, want 0", got)
}
items[0] = "changed"
queue.Push("third")
if got := queue.Drain(); len(got) != 1 || got[0] != "third" {
t.Fatalf("queue after ownership transfer = %#v, want [third]", got)
}
}
func TestZeroValueQueueIsReadyToUse(t *testing.T) {
var queue Queue
if got := queue.Len(); got != 0 {
t.Fatalf("zero-value Len() = %d, want 0", got)
}
queue.Push("ready")
if got := queue.Drain(); len(got) != 1 || got[0] != "ready" {
t.Fatalf("zero-value queue contents = %#v, want [ready]", got)
}
}