package main import ( "net" "testing" ) // Test scafolding func TestSendLogin(t *testing.T) { testTable := []struct { name string pass string resultBuffer []byte resultLenght int // input, output }{ { name: "happy", pass: "happy2", resultBuffer: []byte{140, 15, 0, 104, 97, 112, 112, 121, 32, 104, 97, 112, 112, 121, 50, 0, 0}, resultLenght: 17, }, } for _, tt := range testTable { t.Run(tt.name, func(t *testing.T) { // call function or method under test // .... // check respose server, client := net.Pipe() go func() { sendLogin(client, tt.name, tt.pass) }() reply := make([]byte, 4096) length, _ := server.Read(reply) if length != tt.resultLenght { t.Errorf("Expected length %v, got %v buffer: %v for %s / %s", tt.resultLenght, length, reply[0:length], tt.name, tt.pass) } }) } }