Files
zogo/filex/filex_test.go
T
4566704 c7e8eb14f8 feat(filex): 自 go-hua/common 迁入文件目录工具并独立成包
- 运行目录定位、路径存在性、带进度回调下载、Zip 打包/解压(兼容 GBK 中文文件名)
- 附单元测试、examples/filex 例程与包 README
2026-09-20 12:20:50 +08:00

50 lines
1.2 KiB
Go

package filex
import (
"os"
"path/filepath"
"testing"
)
func TestPathExistsAndWorkDir(t *testing.T) {
exists, err := PathExists(".")
if err != nil || !exists {
t.Errorf("PathExists(.) = %v, %v, want true", exists, err)
}
if exists, _ := PathExists(filepath.Join(t.TempDir(), "not-exist")); exists {
t.Error("不存在的路径应返回 false")
}
if GetWorkDir() == "" {
t.Error("GetWorkDir 不应为空")
}
}
func TestZipAndUnzip(t *testing.T) {
dir := t.TempDir()
src := filepath.Join(dir, "src", "inner")
if err := os.MkdirAll(src, 0755); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(filepath.Join(src, "hello.txt"), []byte("zip content"), 0644); err != nil {
t.Fatal(err)
}
zipPath := filepath.Join(dir, "src.zip")
if err := Zip(filepath.Join(dir, "src"), zipPath); err != nil {
t.Fatalf("Zip: %v", err)
}
dest := filepath.Join(dir, "out")
if err := Unzip(zipPath, dest); err != nil {
t.Fatalf("Unzip: %v", err)
}
data, err := os.ReadFile(filepath.Join(dest, "src", "inner", "hello.txt"))
if err != nil {
t.Fatalf("读取解压文件: %v", err)
}
if string(data) != "zip content" {
t.Errorf("解压内容 = %q", string(data))
}
}