You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
772 B
Go

package request
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestFrameHeader(t *testing.T) {
header := NewFrameHeader()
// 测试Set和Get
header.Set("key1", "value1")
val := header.Get("key1")
assert.Equal(t, "value1", val, "Expected value1")
// 测试不存在的key
val = header.Get("nonexistent")
assert.Nil(t, val, "Expected nil for nonexistent key")
}
func TestFrameHeaderConcurrent(t *testing.T) {
header := NewFrameHeader()
// 并发Set和Get
done := make(chan bool, 100)
for i := 0; i < 100; i++ {
go func(id int) {
key := string(rune(id))
header.Set(key, id)
val := header.Get(key)
assert.Equal(t, id, val)
done <- true
}(i)
}
// 等待所有goroutine完成
for i := 0; i < 100; i++ {
<-done
}
}