32 lines
657 B
Go
32 lines
657 B
Go
package service
|
||
|
||
import (
|
||
"net/http"
|
||
"testing"
|
||
)
|
||
|
||
func TestAsyncServer(t *testing.T) {
|
||
Config.Listen = ":0" // 随机端口
|
||
as := AsyncStart()
|
||
if as.Addr == "" {
|
||
t.Fatal("AsyncStart failed to get address")
|
||
}
|
||
|
||
// 测试服务是否可用
|
||
resp, err := http.Get("http://" + as.Addr + "/__CHECK__")
|
||
if err == nil {
|
||
// 虽然没有注册 /__CHECK__,但应该返回 404 而非连接拒绝
|
||
if resp.StatusCode != http.StatusNotFound {
|
||
t.Errorf("Expected 404, got %d", resp.StatusCode)
|
||
}
|
||
}
|
||
|
||
as.Stop()
|
||
|
||
// 确认服务已关闭
|
||
_, err = http.Get("http://" + as.Addr + "/__CHECK__")
|
||
if err == nil {
|
||
t.Error("Server should be closed")
|
||
}
|
||
}
|