From 78010d2bd759b474086e9bda3939e808a5d16fe2 Mon Sep 17 00:00:00 2001 From: aloncn <10946081@qq.com> Date: Wed, 10 Apr 2019 00:22:10 +0800 Subject: [PATCH] Update unit test for gring --- g/container/gring/gring_unit_test.go | 81 +++++++++++++++------------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/g/container/gring/gring_unit_test.go b/g/container/gring/gring_unit_test.go index c80913b72..214d9e3d1 100644 --- a/g/container/gring/gring_unit_test.go +++ b/g/container/gring/gring_unit_test.go @@ -2,6 +2,7 @@ package gring_test import ( "container/ring" + "github.com/gogf/gf/g" "github.com/gogf/gf/g/container/gring" "github.com/gogf/gf/g/test/gtest" "testing" @@ -22,17 +23,16 @@ func TestRing_Val(t *testing.T) { r.Put(&Student{3,"alon", false}) //元素取值并判断和预设值是否相等 - gtest.AssertEQ(r.Val().(*Student).name,"jimmy") + gtest.Assert(r.Val().(*Student).name,"jimmy") //从当前位置往后移两个元素 r.Move(2) - gtest.AssertEQ(r.Val().(*Student).name,"alon") - if r.Val().(*Student).upgrade == false { - r.Val().(*Student).upgrade = true - //更新元素值 - r.Set(&Student{3, "jack", true}) - } - - + gtest.Assert(r.Val().(*Student).name,"alon") + //更新元素值 + //测试 value == nil + r.Set(nil) + gtest.Assert(r.Val(),nil) + //测试value != nil + r.Set(&Student{3, "jack", true}) }) } func TestRing_CapLen(t *testing.T) { @@ -40,9 +40,9 @@ func TestRing_CapLen(t *testing.T) { r := gring.New(10) r.Put("goframe") //cap长度 10 - gtest.AssertEQ(r.Cap(), 10) + gtest.Assert(r.Cap(), 10) //已有数据项 1 - gtest.AssertEQ(r.Len(), 1) + gtest.Assert(r.Len(), 1) }) } @@ -53,10 +53,10 @@ func TestRing_Position(t *testing.T) { r.Put(2) //往后移动1个元素 r.Next() - gtest.AssertEQ(r.Val(),2) + gtest.Assert(r.Val(),2) //往前移动1个元素 r.Prev() - gtest.AssertEQ(r.Val(),1) + gtest.Assert(r.Val(),1) }) } @@ -72,7 +72,7 @@ func TestRing_Link(t *testing.T) { s.Put("b") rs := r.Link(s) - gtest.AssertEQ(rs.Move(2).Val(), "b") + gtest.Assert(rs.Move(2).Val(), "b") }) } @@ -86,7 +86,7 @@ func TestRing_Unlink(t *testing.T) { // 1 2 3 4 5 // 删除当前位置往后的2个数据,返回被删除的数据 s := r.Unlink(2) // 2 3 - gtest.AssertEQ(s.Val(), 2) + gtest.Assert(s.Val(), 2) }) } @@ -99,30 +99,25 @@ func TestRing_Slice(t *testing.T) { } r.Move(2) // 3 array := r.SliceNext() // [3 4 5 1 2] - gtest.AssertEQ(array[0], 3) - gtest.AssertEQ(len(array), 5) + gtest.Assert(array[0], 3) + gtest.Assert(len(array), 5) //判断array是否等于[3 4 5 1 2] ra := []int{3,4,5,1,2} - eq := true - for i, v := range array { - if v != ra[i] { - eq = false - } - } - gtest.AssertEQ(eq, true) + gtest.Assert(ra, array) //第3个元素设为nil r.Set(nil) array2 := r.SliceNext() //[4 5 1 2] //返回当前位置往后不为空的元素数组,长度为4 - gtest.AssertEQ(len(array2), 4) + gtest.Assert(array2, g.Slice{4,5,1,2}) array3 := r.SlicePrev() //[2 1 5 4] - //数组array3第一个元素为2 - gtest.AssertEQ(array3[0], 2) - //数组长度4 - gtest.AssertEQ(len(array3), 4) + gtest.Assert(array3, g.Slice{2,1,5,4}) + + s := gring.New(ringLen) + array4 := s.SlicePrev() // [] + gtest.Assert(array4, g.Slice{}) }) } @@ -131,25 +126,35 @@ func TestRing_RLockIterator(t *testing.T) { gtest.Case(t, func() { ringLen := 5 r := gring.New(ringLen) + + //ring不存在有值元素 + r.RLockIteratorNext(func(value interface{}) bool { + gtest.Assert(r.Val(), nil) + return true + }) + + + r.RLockIteratorPrev(func(value interface{}) bool { + gtest.Assert(r.Val(), nil) + return true + }) + for i := 0; i< ringLen; i++ { r.Put(i+1) } - var i,j int + //回调函数返回true,RLockIteratorNext遍历5次 r.RLockIteratorNext(func(value interface{}) bool { - i++; + gtest.Assert(r.Val(), 1) return true }) - gtest.AssertEQ(i, 5) //RLockIteratorPrev遍历3次返回 false,退出遍历 r.RLockIteratorPrev(func(value interface{}) bool { - if j++; j < 3 { - return true - } + gtest.Assert(r.Val(), 1) return false }) - gtest.AssertEQ(j, 3) + }) } @@ -165,7 +170,7 @@ func TestRing_LockIterator(t *testing.T) { i++; return true }) - gtest.AssertEQ(i, 5) + gtest.Assert(i, 5) r.LockIteratorPrev(func(item *ring.Ring) bool { if j++; j < 3 { @@ -174,6 +179,6 @@ func TestRing_LockIterator(t *testing.T) { return false }) - gtest.AssertEQ(j, 3) + gtest.Assert(j, 3) }) } \ No newline at end of file