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

83 lines
1.9 KiB

package music_test
import (
"yunyan/sys/music"
"fmt"
"io"
"net/http"
"net/url"
"os"
"testing"
"time"
)
// Test_SearchMusic 调用外部音乐搜索接口做最小联通性验证。
// 参数:
// - t: Go 测试对象
//
// 返回值:
// - 无
//
// 异常:
// - 当未启用集成测试时跳过
// - 当外部接口不可用或返回异常时,测试失败
func Test_SearchMusic(t *testing.T) {
if os.Getenv("MUSIC_INTEGRATION_TEST") == "" {
t.Skip("跳过测试:未设置环境变量 MUSIC_INTEGRATION_TEST")
}
keywords := url.QueryEscape("泡沫")
url := fmt.Sprintf("http://api.ideapsound.com:3000/cloudsearch?keywords=%s&limit=1&offset=0", keywords)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
t.Fatalf("构造请求失败: %v", err)
}
// 执行请求
client := &http.Client{Timeout: 10 * time.Second}
resp, err := client.Do(req)
if err != nil {
t.Fatalf("请求失败: %v", err)
}
defer resp.Body.Close()
// 读取响应内容
body, err := io.ReadAll(resp.Body)
if err != nil {
t.Fatalf("读取响应失败: %v", err)
}
// 输出响应内容
fmt.Println(string(body))
}
// Test_Sys_SearchMusic 使用系统封装进行音乐 URL 获取的最小集成测试。
// 参数:
// - t: Go 测试对象
//
// 返回值:
// - 无
//
// 异常:
// - 当未启用集成测试时跳过
// - 当请求失败时,测试失败
func Test_Sys_SearchMusic(t *testing.T) {
if os.Getenv("MUSIC_INTEGRATION_TEST") == "" {
t.Skip("跳过测试:未设置环境变量 MUSIC_INTEGRATION_TEST")
}
if sys, err := music.NewSys(
music.SetApiBaseUrl("https://music.voitrans.net"),
); err != nil {
t.Fatalf("Sys Init err:%v", err)
} else {
var (
searchResultResponse *music.UrlResult
)
if searchResultResponse, err = sys.MusicUrl(441491828); err == nil {
}
if err != nil {
t.Fatalf("播放音乐失败: %v", err)
}
t.Logf("播放音乐成功 searchResultResponse:%+v", searchResultResponse)
}
}