github.com/XiaoMi/Gaea@v1.2.5/util/mocks/pipeTest/pipeTest_test.go (about)

     1  package pipeTest
     2  
     3  import (
     4  	"github.com/stretchr/testify/require"
     5  	"testing"
     6  )
     7  
     8  // TestPipeTestWorkable 为验证测试 PipeTest 是否能正常运作,以下测试不使用 MariaDB 的服务器,只是单纯的单元测试
     9  func TestPipeTestWorkable(t *testing.T) {
    10  	t.Run("此为测试 PipeTest 的验证测试,主要是用来确认整个测试流程没有问题", func(t *testing.T) {
    11  		// 开始模拟物件
    12  		mockClient, mockServer := NewDcServerClient(t, TestReplyMsgFunc) // 产生 mockClient 和 mockServer 模拟物件
    13  
    14  		// 产生一开始的讯息和之后的预期正确讯息
    15  		msg0 := []uint8{0}  // 起始传送讯息
    16  		correct := uint8(0) // 之后的预期正确讯息
    17  
    18  		// 产生一连串的接收和回应的操作
    19  		for i := 0; i < 5; i++ {
    20  			msg1 := mockClient.SendOrReceiveMsg(msg0).ReplyMsg(mockServer) // 接收和回应
    21  			correct++                                                      // 每经过一个reply() 函数时,回应讯息会加1
    22  			require.Equal(t, msg1[0], correct)
    23  			msg0 = mockServer.SendOrReceiveMsg(msg1).ReplyMsg(mockClient) // 接收和回应
    24  			correct++                                                     // 每经过一个reply() 函数时,回应讯息会加1
    25  			require.Equal(t, msg0[0], correct)
    26  		}
    27  	})
    28  }